Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x TypeError(';不是有效的非字符串序列或映射对象';,)_Python 3.x_Asynchronous_Python Requests_Python Asyncio_Aiohttp - Fatal编程技术网

Python 3.x TypeError(';不是有效的非字符串序列或映射对象';,)

Python 3.x TypeError(';不是有效的非字符串序列或映射对象';,),python-3.x,asynchronous,python-requests,python-asyncio,aiohttp,Python 3.x,Asynchronous,Python Requests,Python Asyncio,Aiohttp,我正在使用aiohttp get请求从另一个web 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.

我正在使用aiohttp get请求从另一个web 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&get请求不起作用,但同样适用于requests.get&post请求。

使用字节(即'b'前缀)对于
数据
参数

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

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

我尝试了以上的解决方案,但现在我收到了错误的输入。你能详细说明一下吗?您的意思是HTTP错误405(不允许使用方法)?你可能在做POST,页面只允许GET,反之亦然。对于GET,您需要使用params参数而不是数据,但它必须是一个dict或list,正如我在上面提到的那样。@miles82中放宽了该要求