Python对RFC 7464 JSON文本序列的支持
项目描述
jsonseq
RFC 7464 JSON Text Sequences 编码和解码的Python实现。
用法
jsonseq.encode.JSONSeqEncoder
类接受流式传输的JSON序列化Python对象,并为每个对象产生其JSON表示形式,该表示形式由可选的ASCII记录分隔符(RS,\x1e
)和换行符(\n
)包围。
>>> from jsonseq.encode import JSONSeqEncoder
>>> for chunk in JSONSeqEncoder().encode(({"a": i, "b": i} for i in range(3))):
... print(repr(chunk))
...
'{"a": 0, "b": 0}\n'
'{"a": 1, "b": 1}\n'
'{"a": 2, "b": 2}\n'
RS允许将格式化的JSON流式传输到可以再次解码的序列中。
>>> for chunk in JSONSeqEncoder(with_rs=True, indent=2).encode(({"a": i, "b": i} for i in range(3))):
... print(repr(chunk))
...
'\x1e{\n "a": 0,\n "b": 0\n}\n'
'\x1e{\n "a": 1,\n "b": 1\n}\n'
'\x1e{\n "a": 2,\n "b": 2\n}\n'
您还可以使用 iterencode()
方法获取编码的JSON序列的小块。
>>> for chunk in JSONSeqEncoder(with_rs=True).iterencode(({"a": i} for i in range(3))):
... print(repr(chunk))
...
'\x1e'
'{'
'"a"'
': '
'0'
'}'
'\n'
'\x1e'
'{'
'"a"'
': '
'1'
'}'
'\n'
'\x1e'
'{'
'"a"'
': '
'2'
'}'
'\n'
您可以使用 encode()
或 iterencode()
将JSON文本序列复制到文件中。
with open("/tmp/example.jsons", "w") as f:
for chunk in JSONSeqEncoder(with_rs=True, indent=2).iterencode(({"a": i, "b": i} for i in range(3))):
f.write(chunk)
调用文件的 write()
方法时无需添加换行符。JSONSeqEncoder确保它已在那里需要的地方。
jsonseq.decode.JSONSeqDecoder
类接受介于可选ASCII记录分隔符(RS,\x1e
)和换行符(\n
)之间的JSON文本流,并为解码的Python对象生成。
>>> stream = ['\x1e', '{', '"a"', ': ', '0', '}', '\n', '\x1e', '{', '"a"', ': ', '1', '}', '\n', '\x1e', '{', '"a"', ': ', '2', '}', '\n']
>>> for obj in JSONSeqDecoder().decode(stream):
... print(repr(obj))
...
{'a': 0}
{'a': 1}
{'a': 2}
可以使用相同的方式从文件中读取对象。
>>> with open("/tmp/example.jsons") as f:
... for obj in JSONSeqDecoder().decode(f):
... print(repr(obj))
...
{'a': 0, 'b': 0}
{'a': 1, 'b': 1}
{'a': 2, 'b': 2}
项目详情
下载文件
下载适用于您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
jsonseq-1.0.0.tar.gz (3.3 kB 查看哈希值)
构建分发
jsonseq-1.0.0-py3-none-any.whl (4.6 kB 查看哈希值)
关闭
jsonseq-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 238f51aa741132d2a41d1fb89e58eb8d43c6da9d34845c9499dd882a4cd0253a |
|
MD5 | 8ecd561fa318378f3df49f7c0497799f |
|
BLAKE2b-256 | 6370faca1f522bc03f92ac75da1eb29fe045bf89246a8e8ed04ccbd563540520 |
关闭
jsonseq-1.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4add916420fc02796a503e59ce4d8008152830fd1625cc70692b1f980a32231 |
|
MD5 | fe0d4b73ba04ada7f53a079d0caa46a0 |
|
BLAKE2b-256 | 04f5367876253306f752190203917a51670682780179665b38fc713629e0be71 |