[英]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.