回答編集履歴

5

byte repr 0x00 -> \x00

2020/03/25 05:40

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -126,9 +126,9 @@
126
126
 
127
127
  if __name__ == '__main__':
128
128
 
129
- print(repr(cbor_encode(0))) # => b'0x00'
129
+ print(repr(cbor_encode(0))) # => b'\x00'
130
130
 
131
- print(repr(cbor_encode(23))) # => b'0x17'
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 の処理順序入れ替え。

2020/03/25 05:40

投稿

teamikl
teamikl

スコア8760

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

例外のコードを訂正

2020/03/25 03:21

投稿

teamikl
teamikl

スコア8760

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

2020/03/25 02:34

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  |0| \x00 |1|"0"|1|
6
6
 
7
- |23| \x18 |1| "23"| 2|
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形式のリストでの総バイト数を追記

2020/03/25 02:25

投稿

teamikl
teamikl

スコア8760

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