我有一个JSON文件,其中三个对象可用,因为第二个和第三个对象没有我实际需要的某些字段。在缺少的字段中,我需要添加自己的值。我将在下面提供我的代码
with open("final.json") as data1:
a = json.load(data1)
final = []
for item in a:
d = {}
d["AppName"]= item["name"]
d["AppId"] = item["id"]
d["Health"] = item["health"]
d["place1"] = item["cities"][0]["place1"]
d["place2"] = item["cities"][0]["place2"]
print(final)
错误:我遇到了关键错误
[{
"name": "python",
"id": 1234,
"health": "Active",
"cities": {
"place1": "us",
"place2": "newyork"
}
},
{
"name": "java",
"id": 2345,
"health": "Active"
}, {
"name": "python",
"id": 1234
}
]
[{
"name": "python",
"id": 1234,
"health": "Active",
"cities": {
"place1": "us",
"place2": "newyork"
}
},
{
"name": "java",
"id": 2345,
"health": "Null",
"cities": {
"place1": "0",
"place2": "0"
}
}, {
"name": "python",
"id": 1234,
"health": "Null",
"cities": {
"place1": "0",
"place2": "0"
}
}
]
答案 0 :(得分:0)
我看到您发布的代码有两个问题。
首先,您在输入JSON时引用了“城市”字段,就好像它实际上是一个对象时一样,是一个列表。
第二,要处理包含可能缺少某些字段的对象的JSON,应使用Python字典get方法。此方法需要一个密钥和一个可选值,如果找不到该密钥,则返回该值(默认为None)。
>>> (l * [[1], [2], [4]]).flatten()
array([ 3, 4, 5, 6, 7, 6, 8, 10, 12, 14, 12, 16, 20, 24, 28])