背景以及造成原因:
在數據庫存儲的時候,常常會遇到不確定參數的情況即可變參數,在創建的時候使用JSON格式字段,將不確定key的數據放在該字段里面,后面使用該字段的時候就容易出現key不存在的情況
情況如下圖:

解決方式:
1、用存在於字典的key於所查的做對比,一致就返回值,其他的就另作處理
代碼塊:
dict_data = {'manager': '區域負責人',
'pic_conf': {'pic_name_1': ['SW01']},
'pic_path': '',
'technique': ['技術', '技術2'],
'fresh_time': 10,
'switch_time': 5,
'machine_code': ['SW01'],
'technique_title': '技術',
'workcenter_code': 'GF_CNC_SW',
'production_target': [{'target_name': '2h_SW01', 'machine_code': 'SW01'}]}
val = ''
for key, value in dict_data.items():
if key == 'name':
val = value
print(val or None)
效果圖:

2、使用 defaultdict 模塊格式化
defaultdict接受一個工廠函數作為參數,這個factory_function可以是list、set、str等等,作用是當key不存在時,返回的是工廠函數的默認值,比如list對應[ ],str對應的是空字符串,set對應set( ),int對應0
效果圖:

(1、用函數將原數據數據放進defaultdict里面
代碼塊:
dict_data = {'manager': '區域負責人',
'pic_conf': {'pic_name_1': ['SW01']},
'pic_path': '',
'technique': ['技術', '技術2'],
'fresh_time': 10,
'switch_time': 5,
'machine_code': ['SW01'],
'technique_title': '技術',
'workcenter_code': 'GF_CNC_SW',
'production_target': [{'target_name': '2h_SW01', 'machine_code': 'SW01'}]}
def build_dict(old_dict: dict):
new_dict = defaultdict(dict)
for key, value in old_dict.items():
new_dict[key] = value
return new_dict
data = build_dict(dict_data)
print(data['name'] or None)
效果圖:

(2、使用defaultdict自帶的方式寫入
代碼塊:
from collections import defaultdict dict_data = {'manager': '區域負責人', 'pic_conf': {'pic_name_1': ['SW01']}, 'pic_path': '', 'technique': ['技術', '技術2'], 'fresh_time': 10, 'switch_time': 5, 'machine_code': ['SW01'], 'technique_title': '技術', 'workcenter_code': 'GF_CNC_SW', 'production_target': [{'target_name': '2h_SW01', 'machine_code': 'SW01'}]} ddd = defaultdict(dict, **dict_data) print(ddd['name'] or None)
效果圖:

