我有这段代码:
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' "
。
似乎它无法为每个代理发出一个请求。
任何帮助都将不胜感激。
答案 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))