如何解决从API下载数据[Python]
我该如何从如下所示的API下载数据(对不起-也许我的信息不清楚,但是我对API有初学者)
access-control-allow-headers: Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
access-control-allow-methods: GET,POST,OPTIONS
access-control-allow-origin: https://test.deribit.com
cache-control: no-store
connection: keep-alive
content-length: 149
content-type: application/json
date: Fri,04 Sep 2020 08:36:46 GMT
server: Nginx/1.17.9
vary: Origin,Authorization,Partner
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{
"jsonrpc": "2.0","id": 11,"error": {
"message": "unauthorized","code": 13009
},"testnet": true,"usIn": 1599208606258957,"usOut": 1599208606259032,"usDiff": 75
}
我试图使用sth这样的东西:
import requests
payload = {
"jsonrpc": "2.0","error": {
"message": "unauthorized","testnet": 'true',"usDiff": 75
}
r=requests.get('https://test.deribit.com',data = payload)
r.json()
解决方法
@ Andy_101是,我的错误消息如下:
JSONDecodeError Traceback (most recent call last)
<ipython-input-50-33c5e77ebc90> in <module>()
16
17
---> 18 r.json()
~\Anaconda3\lib\site-packages\requests\models.py in json(self,**kwargs)
894 # used.
895 pass
--> 896 return complexjson.loads(self.text,**kwargs)
897
898 @property
~\Anaconda3\lib\json\__init__.py in loads(s,encoding,cls,object_hook,parse_float,parse_int,parse_constant,object_pairs_hook,**kw)
346 parse_int is None and parse_float is None and
347 parse_constant is None and object_pairs_hook is None and not kw):
--> 348 return _default_decoder.decode(s)
349 if cls is None:
350 cls = JSONDecoder
~\Anaconda3\lib\json\decoder.py in decode(self,s,_w)
335
336 """
--> 337 obj,end = self.raw_decode(s,idx=_w(s,0).end())
338 end = _w(s,end).end()
339 if end != len(s):
~\Anaconda3\lib\json\decoder.py in raw_decode(self,idx)
353 obj,end = self.scan_once(s,idx)
354 except StopIteration as err:
--> 355 raise JSONDecodeError("Expecting value",err.value) from None
356 return obj,end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
,
我认为您需要的是这个。祝您编程愉快:)如果您有任何问题,请给我评论,然后我会尽力帮助您:)
,由于JSON无法序列化响应(可能是HTTP状态400),因此您收到的响应为空。您可以使用来检查响应代码
response.status_code
,这可能有助于您查找错误原因。
根据您的问题,我只能假设您需要调用POST(或者可能是PUT)而不是GET,因为您正在发送有效负载,而这对于GET请求而言并不是标准的:
r=requests.post('https://test.deribit.com',data=payload)
请求主体(您的有效负载)是POST(使用主体中的数据创建对象),PUT / PATCH(使用请求主体中的数据更新对象)的标准配置。如果参数太多而无法容纳url,则有时还会使用post来检索数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。