如何从JSON执行许多变量赋值,如果键错误赋值None并在python中执行其余的所有
我正在尝试从 JSON 文件中获取值并将其存储在 python 字典中。
我想为我提供的键中可用的值和那些不可用的值分配值,我想存储为“无”
我尝试了以下,
try:
dataDict['syn']= results['synonyms']
dataDict['reactivity']= results['crossReactivity']
dataDict['Temp']= results['storageTemp']
dataDict['catNum']= results['catalogNum']
dataDict['shipping']= results['shippingInstructions']
except KeyError as e:
dataDict[e.args[0]] = "None"
sa = f"""
synonyms: {dataDict['syn']}
crossReactivity: {dataDict['reactivity']}
storageTemp: {dataDict['Temp']}
catalogNum: {dataDict['catNum']}
shippingInstructions: {dataDict['shipping']}
"""
print (sa)
我得到以下输出,
synonyms: None
crossReactivity:
storageTemp:
catalogNum:
shippingInstructions:
如果 JSON 文件中的“同义词”不可用,则将“无”分配给 dataDict['syn'],但其他语句将被忽略。
如何执行其余的任务,而不必在单独的 try 和 except 中编写每个和所有内容?
回答
您可以使用.get(),它采用“默认”值:
dataDict = {}
results = {"synonyms": "foo", "storageTemp": 15}
dataDict['syn'] = results.get('synonyms', None)
dataDict['reactivity'] = results.get('crossReactivity', None)
dataDict['Temp'] = results.get('storageTemp', None)
dataDict['catNum'] = results.get('catalogNum', None)
dataDict['shipping'] = results.get('shippingInstructions', None)
print(dataDict)
出去:
{'shipping': None, 'catNum': None, 'reactivity': None, 'syn': 'foo', 'Temp': 15}
THE END
二维码