下面的数据是从网页上抓取的,包含如下条目(就像一个有很多行的表格):
entry1: key1: value1-1, key2: value2-1, key3: value3-1
entry2: key1: value1-2, key2: value2-2, key3: value3-2
entry3: key1: value3-1, key2: value2-3, key3: value3-3
......
entry100: key1: value100-1, key2: value100-2, key3: value100-3
如何使用字典来存储这些数据?数据来自列表,因此“字典追加”应该在循环中完成...
这是我目前的解决方案:
case_list = {}
for entry in entries_list:
case = {'key1': value, 'key2': value, 'key3':value }
case_list.update(case)
但最后的 case_list 只包含最后一个案例条目...有人可以帮我解决这个问题吗? 我希望 case_list 包含 100 个条目,条目之间没有任何覆盖,之后我需要将它存储到数据库中。
最佳答案
在您当前的代码中,Dictionary.update()
所做的是更新(更新意味着值被字典中传递的相同键的值覆盖)当前字典中的键字典中的值作为参数传递给它(添加任何新的键:值对,如果存在)。单个平面字典不能满足您的要求,您需要一个字典列表或一个包含嵌套字典的字典。
如果你想要一个字典列表(列表中的每个元素都是一个条目的字典)那么你可以将 case_list
作为一个列表,然后附加 case
到它(而不是更新)。
例子-
case_list = []
for entry in entries_list:
case = {'key1': entry[0], 'key2': entry[1], 'key3':entry[2] }
case_list.append(case)
或者你也可以有一个字典的字典,字典中每个元素的键是 entry1
或 entry2
等,值是对应的字典条目。
case_list = {}
for entry in entries_list:
case = {'key1': value, 'key2': value, 'key3':value }
case_list[entryname] = case #you will need to come up with the logic to get the entryname.
关于python - 在循环内将项目添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31181830/