如何从 JSON 执行许多变量赋值,如果键错误赋值 None 并在 python 中执行其余所有

How to execute many variable assignments from JSON and if key error assign None and execute rest of all in python

我正在尝试从 JSON 文件中获取值并将其存储在 python 字典中。

我想为我提供的键中可用的值分配值,对于那些不可用的值,我想存储为“None”

我尝试了以下方法,

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:

如果 'synonyms' 在 JSON 文件中不可用,'None' 被分配给 dataDict['syn'] 但其余语句将被忽略。

如何执行其余的作业,而不必在单独的 try 和 except 中编写所有内容?

您可以使用 .get(),它采用 'default' 值:

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}