簡體   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