使用REQUESTS的多个值更新Dictionary Key

时间:2014-05-24 21:25:04

标签: python dictionary

我有这段代码:

dict = {
    "key": "0"
}

我正在从文件中读取一些代理。基本上,我正在使用每个代理更新dict['key']。导致

"key": ['proxy1','proxy2'...]

但是当我提出请求时,我有这个:

for x in range(0,l):
    requests.get(link, proxies=proxies[x])

我得到的错误是:

File "main.py", line 19, in (module)
request.get(link, proxies=dict['key'][x])
Key Error: 0

执行proxies['http'][x]会给我"str object has no attribute 'get' "

似乎它无法为每个代理发出一个请求。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

你想要一个清单:

dct = {'key': []}

for i in range(10):
    dct['key'].append(i)

这只是操纵与密钥关联的列表值。字典本身并没有真正改变,它只用于引用包含的列表。

每当您需要每个键有多个值时,您需要一个嵌套结构。这是一个列表,但它可能是另一个字典,元组,集合,自定义类的实例等。

答案 1 :(得分:0)

如果您想避免手动添加空列表,请使用defaultdict:

from collections import defaultdict
dd = defaultdict(list) # list if a nullary callable that returns a new list object
dd['var'].extend(range(10))