如何从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}


以上是如何从JSON执行许多变量赋值,如果键错误赋值None并在python中执行其余的所有的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>