我想做一個字典,有name
的密鑰&數據。在views.py我寫KeyError爲什麼字典是空的?
data_dict ={}
def try_to_int(arg):
try:
return int(arg)
except:
return arg
def main():
book4 = xlrd.open_workbook('./data/excel1.xlsx')
sheet4 = book4.sheet_by_index(0)
data_dict_origin = OrderedDict()
tag_list = sheet4.row_values(0)[1:]
for row_index in range(1, sheet4.nrows):
row = sheet4.row_values(row_index)[1:]
row = list(map(try_to_int, row))
data_dict_origin[row_index] = dict(zip(tag_list, row))
print(data_dict_origin)
for value in data_dict_origin.values():
if value['name'] in data_dict_origin:
data_dict[value['name']].update(value)
else:
data_dict[value['name']] = value
print(data_dict)
main()
print(data_dict_origin)
給出:
OrderedDict([(1, {'user_id': '100', 'group': 'A', 'name': 'Tom', 'dormitory': 'C'})])
所以,我真的不明白爲什麼這個錯誤發生。 我試圖像其他的東西:
for value in data_dict.values():
if value['name'] in data_dict:
data_dict[value['name']].update(value)
else:
data_dict[value['name']] = value
{}
被證明。 我應該如何解決這個問題?
但是你用'data_dict [值 '名']。更新(值)'?你不應該總是寫'data_dict [value ['name']] = value'嗎? –
你的'data_dict_origin'鍵是整數,所以'data_dict_origin'中的value ['name']永遠不會成立。你是否想要在data_dict'中測試'value ['name']而不是? –
@WillemVanOnsem:他們正在嘗試按名稱整理字典,所以不會。 –