微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从API下载数据[Python]

如何解决从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)
,

我认为您需要的是这个。祝您编程愉快:)如果您有任何问题,请给我评论,然后我会尽力帮助您:)

Python API Tutorial

,

由于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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?