我在Python 2.7中编写了一个小API,它从谷歌分析中检索数据并将其发送到我自己的网站。
这是输入
{'country': '(not set)', 'visits': '1'}
{'country': 'Belgium', 'visits': '9'}
{'country': 'Brazil', 'visits': '2'}
{'country': 'Germany', 'visits': '2'}
{'country': 'Mexico', 'visits': '2'}
{'country': 'Netherlands', 'visits': '38'}
{'country': 'Philippines', 'visits': '1'}
{'country': 'Portugal', 'visits': '1'}
{'country': 'Spain', 'visits': '1'}
{'country': 'Thailand', 'visits': '1'}
{'country': 'United Kingdom', 'visits': '1'}
{'country': 'United States', 'visits': '1'}
当我将其附加到包含以下代码的列表时:
new_dict = {}
new_list = []
for row in query:
for count, attribute in enumerate(list_of_dim_met):
new_dict.update({
attribute.replace('ga:',''): row[count].encode('ascii','ignore')
})
new_list.append(new_dict)
print new_list
它只与美国重复最后一行12次。我尝试了一切,但我变得疯狂。有人知道吗?
亲切的问候。
答案 0 :(得分:1)
因为代码在循环中使用相同的字典并更新dictinoary,并将相同的字典附加到列表中。
在循环中创建一个新词典,而不是使用相同的词典。
new_list = []
for row in query:
for count, attribute in enumerate(list_of_dim_met):
new_dict = {
attribute.replace('ga:',''): row[count].encode('ascii','ignore')
}
new_list.append(new_dict)