TypeError('不是有效的非字符串序列或映射对象')

时间:2015-11-06 11:48:29

标签: python-3.x asynchronous python-requests python-asyncio aiohttp

我正在使用aiohttp get请求从其他网络API下载一些内容 但我收到了:

exception = TypeError('not a valid non-string sequence or mapping object',)

以下是我要发送的数据。

data = "symbols=LGND-US&exprs=CS_EVENT_TYPE_CD_R(%27%27,%27now%27,%271D%27)"

如何解决?

我试过两种方式:

r = yield from aiohttp.get(url, params=data) # and
r = yield from aiohttp.post(url, data=data)

同时我可以使用以下方式获取数据:

r = requests.get(url, params=data) # and
r = requests.post(url, data=data)

但我需要异步实现。

如果我可以使用import requests库而不是import aiohttp来制作异步http请求,也建议我使用某种方式,因为在许多情况下,aiohttp post&获取请求不起作用,但同样适用于requests.get&发布请求。

1 个答案:

答案 0 :(得分:2)

docs使用data参数的字节(即'b'前缀)。

r = await aiohttp.post('http://httpbin.org/post', data=b'data')

此外,params参数应该是dict或元组列表。