我得到錯誤迭代字典串列 custom_list - 每個字典有 3 個鍵的字典串列
for i in custom_list:
for link, id, timestamp in i.items():
print("id : ", id)
print("link : ", link)
print("timestamp : ",timestamp)
錯誤:
for link, id, timestamp in i.items():
ValueError: not enough values to unpack (expected 3, got 2)
如果我列印 'i' 我可以看到我有 3 個值 'i' 字典列印示例
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'}
uj5u.com熱心網友回復:
i 在第一個 for 回圈中將給出一個字典,因此您可以直接參考鍵值對而無需另一個 for 回圈
for i in custom_list:
print("id : ", i['id'])
print("link : ", i['link'])
print("timestamp : ",i['timestamp'])
如果字典的結構是動態的,并且您想要迭代當前迭代字典中的所有鍵值對,您可以添加以下內容
for i in custom_list:
for key, val in i.items():
print(f'{key}: {value}')
uj5u.com熱心網友回復:
最初采用的方法的問題是,dict.items()它將回傳一個鍵值對元組串列(例如[(key1, val1), (key2, val2)]:)
在這種情況下,我們可以采用幾種方法,使用字典方法dict.keys():dict.values()和dict.items()。
dict.keys() => 字典中存在的鍵串列 dict.values() =>
字典中存在的值串列
dict.items() => 元組中的鍵值對串列。
- 我們可以獲取字典中的每個鍵,并從字典中為每個鍵選擇值
custom_list = [
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'},
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'}
]
for i in custom_list:
for a in i.keys():
print(i[a])
- 或者,如果鍵的排列在陣列中的每個字典中都是一致的,則可以在我們回圈遍歷外部陣列時將變數分配給每個值。
custom_list = [
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'},
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'}
]
for i in custom_list:
(id_, link, timestamp) = i.values()
print((id_, link, timestamp))
- 如果字典中的專案是動態的,我們可以采用這種方法
custom_list = [
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'},
{'id': 1, 'link': 'https://www.link.com/', 'timestamp': '2022-03-25 01:11:11.11111111'}
]
for i in custom_list:
for key, value in i.items():
print(key, value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451076.html
下一篇:字典到串列映射
