我需要检查一个.json
文件在所有列表中是否都具有一个"quantity": float
属性,并将该属性添加到没有单独存在的位置,但是我不知道如何这样做(我没有JSON格式的经验)。
我已经尝试过.append
和.insert
函数,但是没有一个能像我需要的那样工作。
我有一个这样的列表:
{
"id": 9746439,
"name": "Home Theater LG com blu-ray 3D, 5.1 canais e 1000W",
"quantity": 80,
"price": 2199.0,
"category": "Eletrônicos"
},
{
"id": 2162952,
"name": "Kit Gamer acer - Notebook + Headset + Mouse",
"price": 25599.0,
"category": "Eletrônicos"
},
如您所见,第二部分不具有“数量”属性,我需要像"quantity": 0
一样添加它,但不知道如何去做。那在我的列表中发生了很多次,我想知道如何编写代码来查找这些错误,并像列表中的其余部分一样在“名称”和“价格”之间添加属性。
答案 0 :(得分:0)
jString = '''{
"lst":[
{
"id": 9746439,
"name": "Home Theater LG com blu-ray 3D, 5.1 canais e 1000W",
"quantity": 80,
"price": 2199.0,
"category": "Eletrônicos"
},
{
"id": 2162952,
"name": "Kit Gamer acer - Notebook + Headset + Mouse",
"price": 25599.0,
"category": "Eletrônicos"
}
]
}'''
jObj = json.loads(jString)
for x in jObj["lst"]:
if "quantity" not in x:
x["quantity"] = 0
您可以简单地分配属性并将其安全保存到文件中,或者之后保存到任何需要的地方。
答案 1 :(得分:0)
最简单的方法可能是使用json.load()
将json文件加载到Python数据结构中,然后在缺少的地方插入quantity
项,然后将其写入新的json文件中。
import json
# open the input file and load the contents into a python datastructure
with open('myfile.json') as input:
data = json.load(input)
# iterate over each item
for item in data:
# if "quantity" is not present, add it
if 'quantity' not in item:
item['quantity'] = 99.99
# write the updated data to a new file
with open('myfile_new.json', 'w') as output:
json.dump(data, output)
答案 2 :(得分:0)
前几天,我遇到了同样的难题,并使用以下代码解决了这个问题。我完全接受这可能是这样做的“懒惰”方法,但是它非常易于阅读。
import json
json_string = '''{"results":[
{
"id": 9746439,
"name": "Home Theater LG com blu-ray 3D, 5.1 canais e 1000W",
"quantity": 80,
"price": 2199.0,
"category": "Eletrônicos"
},
{
"id": 2162952,
"name": "Kit Gamer acer - Notebook + Headset + Mouse",
"price": 25599.0,
"category": "Eletrônicos"
}]}'''
json_dict = json.loads(json_string)
for item in json_dict["results"]:
try:
item['quantity']
except:
item['quantity'] = 0
我在这里采用的方法是Try and Except,让我们尝试选择数据中的数量键,嘿,如果没有,请添加它。
让我知道您如何使用这种方法。