python - 在 python 中为 requests.futures 添加标头和数据的问题
问题描述
我对下面的代码有问题:
- 在示例代码中它运行良好,但在请求正文中的数据中,数字是随机跳转的
# !pip install requests_futures
from concurrent.futures import as_completed
from pprint import pprint
from requests_futures.sessions import FuturesSession
session = FuturesSession()
data = {
'code' : 'abc123'
}
futures=[]
for i in range(10):
code = '{0:05}'.format(i)
data['code'] = 'abc{}'.format(code)
future = session.get(f'http://httpbin.org/delay/{i}',data=data)
future.i = i
futures.append(future)
for future in as_completed(futures):
resp = future.result()
pprint({
'i': future.i,
'code': resp.request.body,
# 'content': resp.json(),
'url': resp.url
})
我们期望的结果是 abc0001, abc0002,... abc0009 就像 url 但结果不同。我知道这是由并发程序引起的,但我不知道如何调试,任何人都可以帮助我吗?
{'code': 'code=abc00000', 'i': 0, 'url': 'http://httpbin.org/delay/0'}
{'code': 'code=abc00002', 'i': 1, 'url': 'http://httpbin.org/delay/1'}
{'code': 'code=abc00004', 'i': 2, 'url': 'http://httpbin.org/delay/2'}
{'code': 'code=abc00003', 'i': 3, 'url': 'http://httpbin.org/delay/3'}
{'code': 'code=abc00004', 'i': 4, 'url': 'http://httpbin.org/delay/4'}
{'code': 'code=abc00009', 'i': 5, 'url': 'http://httpbin.org/delay/5'}
{'code': 'code=abc00007', 'i': 6, 'url': 'http://httpbin.org/delay/6'}
{'code': 'code=abc00007', 'i': 7, 'url': 'http://httpbin.org/delay/7'}
{'code': 'code=abc00009', 'i': 8, 'url': 'http://httpbin.org/delay/8'}
{'code': 'code=abc00009', 'i': 9, 'url': 'http://httpbin.org/delay/9'}
解决方案
推荐阅读
- javascript - 如何处理 ldapjs 搜索方法中的错误
- c - 打印字符串数组的内容
- c++ - 宏函数 const 参数
- java - 如何将二维数组划分为更小的多个二维数组
- node.js - 检查是否为使用 Azure Graph api 的用户启用了 MFA
- angular - MatTooltip 相对于鼠标光标的位置
- python - 根据 Python 中的当前值和下一个值更改列表中元素的顺序
- c++ - VC++ 2015 错误:“涉及具有内部链接的对象的表达式不能用作非类型参数”
- php - 如何遍历xml表行并通过属性名称访问列值
- image - 从 Firestore 中检索图像数组