假设我有一个包含以下内容的file.json:
[
{
"name": "Shirt1",
"product_id": "001234"
},
{
"name": "Shirt2",
"product_id": "005678"
}
]
使用Python3,我想在两个词典中添加以下行:
"type": "external"
"reviews_allowed": false
这是我的代码:
import json
import os
with open("file.json", "r", encoding="utf8") as in_file:
INP = json.load(in_file)
DATA = []
for item in INP:
item["type"] = "external"
item["reviews_allowed"] = "false"
DATA.append(item)
with open("file2.json", "w", encoding="utf-8") as out_file:
out_file.write(json.dumps(DATA, indent=2, ensure_ascii=False))
os.rename("file2.json", "file.json")
但是,我得到以下内容:
[
{
"name": "Shirt1",
"product_id": "001234",
"type": "external",
"reviews_allowed": "false"
},
{
"name": "Shirt2",
"product_id": "005678",
"type": "external",
"reviews_allowed": "false"
}
]
有没有办法摆脱 false 周围的双引号? 非常感谢你的时间!
答案 0 :(得分:4)
false
是recognised作为JSON中自己的类型:
值可以是双引号中的字符串,也可以是数字,或
true
或false
或null
,或对象或数组。
在python中,JSON false
直接映射到False
bool
值:
>>> json.dumps({'val' : False})
'{"val": false}'
答案 1 :(得分:4)
JSON概念false
直接映射到Python概念False
。使用此行:
item["reviews_allowed"] = False