Python 从DICT列表创建json对象文件
我有一个python词典列表,如下所示:Python 从DICT列表创建json对象文件,python,json,python-3.x,Python,Json,Python 3.x,我有一个python词典列表,如下所示: A = {} A["name"] = "Any_NameX" A["age"] = "Any_AgeX" A["address"] = {"city": "New York", "State": "NY"} B = {} B["name"] = "Any_NameY" B["age"] = "Any_AgeY" B["address"] = {"city": "Orlando", "State": "FL"} list_of_dicts.append
A = {}
A["name"] = "Any_NameX"
A["age"] = "Any_AgeX"
A["address"] = {"city": "New York", "State": "NY"}
B = {}
B["name"] = "Any_NameY"
B["age"] = "Any_AgeY"
B["address"] = {"city": "Orlando", "State": "FL"}
list_of_dicts.append(A)
list_of_dicts.append(B)
现在我将它们写入一个文件,如下所示:
for d in list_of_dicts:
f.write(d)
在文件中,我所有的双引号都转换为单引号
如果我执行f.write(json.dumps(d))
操作,所有内容都会变成一个添加了反斜杠字符的字符串,但我不希望这样做,我希望将它们作为json对象保留在文件中
如果我执行f.write(json.loads(json.dumps(d))
这与编写dict是一样的,所有内容都用单引号括起来
我想要一个json对象文件,每行一个,所有文件都带双引号。我遗漏了什么?您必须对文件对象使用
json.dump()
(函数名中没有s
)
#!/usr/bin/env python3
import json
A = {}
A["name"] = "Any_NameX"
A["age"] = "Any_AgeX"
A["address"] = {"city": "New York", "State": "NY"}
B = {}
B["name"] = "Any_NameY"
B["age"] = "Any_AgeY"
B["address"] = {"city": "Orlando", "State": "FL"}
list_of_dicts = [A, B]
with open('json.file', 'w') as f:
json.dump(list_of_dicts, f, indent=4)
导致
[
{
"name": "Any_NameX",
"age": "Any_AgeX",
"address": {
"State": "NY",
"city": "New York"
}
},
{
"name": "Any_NameY",
"age": "Any_AgeY",
"address": {
"State": "FL",
"city": "Orlando"
}
}
]
您必须对文件对象使用
json.dump()
(函数名中没有s
)
#!/usr/bin/env python3
import json
A = {}
A["name"] = "Any_NameX"
A["age"] = "Any_AgeX"
A["address"] = {"city": "New York", "State": "NY"}
B = {}
B["name"] = "Any_NameY"
B["age"] = "Any_AgeY"
B["address"] = {"city": "Orlando", "State": "FL"}
list_of_dicts = [A, B]
with open('json.file', 'w') as f:
json.dump(list_of_dicts, f, indent=4)
导致
[
{
"name": "Any_NameX",
"age": "Any_AgeX",
"address": {
"State": "NY",
"city": "New York"
}
},
{
"name": "Any_NameY",
"age": "Any_AgeY",
"address": {
"State": "FL",
"city": "Orlando"
}
}
]
你能举一个例子说明你的文件中有什么,你想在你的文件中有什么吗。你的问题我不太清楚。如果你正确地转储到json文件,它应该自动有双引号,因为json不支持单引号。也可能是重复的,不要执行f.write(…)。直接使用json.dump()(不是用于转储到字符串而不是文件的json.dumps),您可以举一个例子说明文件中有什么内容,以及您希望在文件中有什么内容。你的问题我不太清楚。如果你正确地转储到json文件,它应该自动有双引号,因为json不支持单引号。也可能是重复的,不要执行f.write(…)。直接使用json.dump()(而不是用于转储到字符串而不是文件的json.dumps),如果我执行上述操作,内部dict(地址)将变成这样:“地址”:{“\State\”:\“FL\”}。。如何删除escape chaarcters?如何打开/查看文件?您在哪个操作系统上使用哪个python解释器?如果我执行上述操作,内部dict(address)会变成这样:“address”:{“\State\”:\“FL\”}。。如何删除escape chaarcters?如何打开/查看文件?您在哪个操作系统上使用哪个python解释器?