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