繁体   English   中英

python3中的JSON字符串和.format()

[英]JSON string and .format() in python3

我正在尝试使用.format()生成JSON字符串。 我尝试了以下方法:

TODO_JSON = '{"id": {0},"title": {1},"completed:" {2}}'
print(TODO_JSON.format(42, 'Some Task', False))

这引起了

File "path/to/file", line 2, in <module>
    print(TODO_JSON.format(42, 'Some Task', False))
KeyError: '"id"'

为什么会发生此错误? 为什么“ id”被解释为键而不是字符串的一部分?

{}str.format (占位符和变量名)中具有特殊含义,如果您需要format义的{} ,则可以使用{{}}

TODO_JSON = '{{"id": {0},"title": {1},"completed:" {2}}}'
print(TODO_JSON.format(42, 'Some Task', False))
# {"id": 42,"title": Some Task,"completed:" False}

您可以使用%格式样式。

TODO_JSON = '{"id": %i,"title": %s,"completed:" %s}'
print(TODO_JSON % (42, 'Some Task', False))

因为它尝试将json格式一部分的外部{}解析为应通过format格式化的内容

但是你应该尝试json模块

import json
todo = {'id': 42, 'title': 'Some Task', 'completed': False}
TODO_JSON = json.dumps(todo)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM