jsonfile-以json格式增量写入文件。

jsonfile的Python项目详细描述


jsonfile-增量生成json

pip install jsonfile-PyPI link

增量意味着,在大多数地方,您可以发送一个完整的python 对象,或者一次构建一个片段。例如,让我们构建json结构 [3, {"cool": true, "awesome": [1,2,3,4,5]}]

>>> import jsonfile
>>> jp = jsonfile.JsonProto()
>>> jp.start_list()
'['
>>> jp.list_item(3)
'3'
>>> jp.start_dict()
',{'
>>> jp.dict_item('cool', True)
'"cool":true'
>>> jp.dict_key('awesome')
',"awesome"'
>>> jp.dict_value([1,2,3,4,5])
':[1, 2, 3, 4, 5]'
>>> jp.finish_all()
'}]'

使用了JsonProto对象的sans io版本,它只返回 应该写入输出的文本。如果您正在写入 普通的同步上下文,也可以使用JsonWriter对象,它 会稍微方便一些:

>>> import io
>>> dest = io.StringIO()
>>> import jsonfile
>>> jw = jsonfile.JsonWriter(dest)
>>> jw.start_list()
>>> jw.list_item(3)
>>> jw.list_item({'things': 'stuff'})
>>> jw.start_dict()
>>> jw.dict_item('cool', True)
>>> jw.dict_key('awesome')
>>> jw.dict_value([1,2,3,4,5])
>>> jw.finish_all()
>>> dest.getvalue()
'[3,{"things": "stuff"},{"cool":true,"awesome":[1, 2, 3, 4, 5]}]'

因为底层的JsonProto不执行IO,所以应该很容易 在异步上下文中运行良好的JsonWriter版本。

捕捉到许多类型的错误:在根级别有多个对象 使用字典中的列表项等文件。

待办事项:

  • 允许指定自己的jsonencoder以用于完整的对象。
  • 做缩进。
  • 实现AsyncJsonWriter
  • 防止生成非法json的更好的测试(例如 钥匙)。
  • Python2支持吗?

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

推荐PyPI第三方库


热门话题
java为什么即使我已经给出了代码中的所有权限,该代码也没有在emulator中运行?   java Android Studio正在抛出“线程中的异常”main“javax.net.ssl.SSLException:收到致命警报:协议\版本”   java中的for循环嵌套foreach语句   java读取/src/main/resources和/webinf/classes下的文件   java无法以此格式构造JSON响应   身份验证尝试从CAS secure rest api获取响应,但从java客户端获取登录页面作为响应   如何在java中使用excel从第1列和第3列获取单元格值,并将其作为键值对放入map中   在Java程序中打开Windows虚拟键盘   java有没有递归调用findMatch的方法?   java Pig脚本/命令,用于根据多个字符串筛选文件   java最小数量应匹配,应与POST匹配   java打开/关闭声音按钮不工作   Java嵌入式数据库持久性   java在方法调用时引发异常   java文本文件被覆盖而不是保存的问题   java Hibernate sql注释