python对rfc 7464 json文本序列的支持

jsonseq的Python项目详细描述


jsonseq

RFC 7464 JSON Text Sequencespython的编码和解码。

Build StatusCoverage StatusDocumentation Status

用法

jsonseq.encode.JSONSeqEncoder类接受可序列化的json流。 python对象并为每个对象生成其json表示 在可选的ascii记录分隔符(rs,\x1e)和换行符(\n)之间。

>>>fromjsonseq.encodeimportJSONSeqEncoder>>>forchunkinJSONSeqEncoder().encode(({"a":i,"b":i}foriinrange(3))):...print(repr(chunk))...'{"a": 0, "b": 0}\n''{"a": 1, "b": 1}\n''{"a": 2, "b": 2}\n'

rs允许漂亮的打印json流式输出,序列可以是 再次解码。

>>>forchunkinJSONSeqEncoder(with_rs=True,indent=2).encode(({"a":i,"b":i}foriinrange(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'

您还可以获得json序列的小块,因为它们是用 iterencode()方法。

>>>forchunkinJSONSeqEncoder(with_rs=True).iterencode(({"a":i}foriinrange(3))):...print(repr(chunk))...'\x1e''{''"a"'': ''0''}''\n''\x1e''{''"a"'': ''1''}''\n''\x1e''{''"a"'': ''2''}''\n'

可以使用encode()iterencode()将json文本序列复制到文件中。

withopen("/tmp/example.jsons","w")asf:forchunkinJSONSeqEncoder(with_rs=True,indent=2).iterencode(({"a":i,"b":i}foriinrange(3))):f.write(chunk)

调用文件的write()方法时不需要添加换行符。 jsonseqencoder确保它已经在需要的地方了。

jsonseq.decode.JSONSeqDecoder类接受json文本流 夹在可选的ascii记录分隔符(rs,\x1e)和 换行符(\n)并产生解码的python对象。

>>>stream=['\x1e','{','"a"',': ','0','}','\n','\x1e','{','"a"',': ','1','}','\n','\x1e','{','"a"',': ','2','}','\n']>>>forobjinJSONSeqDecoder().decode(stream):...print(repr(obj))...{'a':0}{'a':1}{'a':2}

可以用同样的方法从文件中读取对象。

>>>withopen("/tmp/example.jsons")asf:...forobjinJSONSeqDecoder().decode(f):...print(repr(obj))...{'a':0,'b':0}{'a':1,'b':1}{'a':2,'b':2}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向xsi:nil元素添加另一个属性?   Java抽象泛型方法,使用具体类型实现通配符   java使用pcap4j截断pcap文件   当我放置字母a、b和c时,java中的异常预期会下降   java设置活动对话框不可取消   接口类型变量上的Java克隆   使用Java或BouncyCastle对CSR(证书签名请求)进行安全解码/读取   java调用SavingsAccount对象上的函数并打印结果   java如何在Android应用程序上显示地图上的兴趣点(POI)并与之交互?   如果在JavaFX中的ResultSet中未找到任何内容,则显示java警报   java我将springboot和@component与@scheduled一起使用,它每12小时锁定一次   ApachePOI如何使用java删除包含字符串的word表的行   java如果对象(x,y)靠近其他对象(x,y)   从未对JMSException调用java JMS CachingConnectionFactory OneException方法   javascript使用java将HTML页面转换为MS word