回答編集履歴
5
byte repr 0x00 -> \x00
test
CHANGED
@@ -126,9 +126,9 @@
|
|
126
126
|
|
127
127
|
if __name__ == '__main__':
|
128
128
|
|
129
|
-
print(repr(cbor_encode(0))) # => b'
|
129
|
+
print(repr(cbor_encode(0))) # => b'\x00'
|
130
130
|
|
131
|
-
print(repr(cbor_encode(23))) # => b'
|
131
|
+
print(repr(cbor_encode(23))) # => b'\x17'
|
132
132
|
|
133
133
|
print(repr(cbor_encode([1,2,3,4]))) # => b'\x84\x01\x02\x03\x04'
|
134
134
|
|
4
if/elif で array と number の処理順序入れ替え。
test
CHANGED
@@ -110,13 +110,13 @@
|
|
110
110
|
|
111
111
|
def cbor_encode(value):
|
112
112
|
|
113
|
+
if isinstance(value, int):
|
114
|
+
|
115
|
+
return cbor_encode_number(value)
|
116
|
+
|
113
|
-
if isinstance(value, list):
|
117
|
+
elif isinstance(value, list):
|
114
118
|
|
115
119
|
return cbor_encode_array(value)
|
116
|
-
|
117
|
-
elif isinstance(value, int):
|
118
|
-
|
119
|
-
return cbor_encode_number(value)
|
120
120
|
|
121
121
|
else:
|
122
122
|
|
3
例外のコードを訂正
test
CHANGED
@@ -62,7 +62,7 @@
|
|
62
62
|
|
63
63
|
else:
|
64
64
|
|
65
|
-
raise NotImplementedError
|
65
|
+
raise NotImplementedError("no supported out of number 0..255")
|
66
66
|
|
67
67
|
```
|
68
68
|
|
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
else:
|
122
122
|
|
123
|
-
raise NotImplementedError
|
123
|
+
raise NotImplementedError("unknown data type")
|
124
124
|
|
125
125
|
|
126
126
|
|
2
訂正 23 \x18 -> \x17
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
|0| \x00 |1|"0"|1|
|
6
6
|
|
7
|
-
|23| \x1
|
7
|
+
|23| \x17 |1| "23"| 2|
|
8
8
|
|
9
9
|
|[1,2,3,4]|\x84 \x01 \x02 \x03 \x04 |5|"[1,2,3,4]"|9|
|
10
10
|
|
1
JSON形式のリストでの総バイト数を追記
test
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
-
- JSON では、配列の始点終点の [] に2バイト、区切り文字で 要素数-1の3バイト + データ(1234)の4バイト
|
85
|
+
- JSON では、配列の始点終点の [] に2バイト、区切り文字で 要素数-1の3バイト + データ(1234)の4バイト (2+3+4=計9バイト)
|
86
86
|
|
87
87
|
- CBOR では1バイト目に配列であることの印とその長さの情報を含みます
|
88
88
|
|