首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gemini API中的简单JSON解码错误无中生有

Gemini API中的简单JSON解码错误无中生有
EN

Stack Overflow用户
提问于 2021-01-12 00:03:48
回答 1查看 145关注 0票数 0

我正在尝试玩双子座的交易API。我已经为自己颁发了一个API密钥和一个密钥,在配置我的环境之后,我通过pip设置和安装请求时遇到了很多问题,我使用他们的示例代码创建了一个简单的脚本来读取我最近的交易。以下是脚本,去掉了我的API密钥:

代码语言:javascript
运行
复制
#!/usr/bin/env/ python

import requests
import json
import base64
import hmac
import hashlib
import datetime, time

url = "https://api.sandbox.gemini.com"

gemini_api_key = "master-xxx"
gemini_api_secret = "xxx".encode()

t = datetime.datetime.now()
payload_nonce =  str(int(time.mktime(t.timetuple())*1000))
payload =  {"request": "/v1/mytrades", "nonce": payload_nonce}
encoded_payload = json.dumps(payload).encode()
b64 = base64.b64encode(encoded_payload)
signature = hmac.new(gemini_api_secret, b64, hashlib.sha384).hexdigest()

request_headers = {
    'Content-Type': "text/plain",
    'Content-Length': "0",
    'X-GEMINI-APIKEY': gemini_api_key,
    'X-GEMINI-PAYLOAD': b64,
    'X-GEMINI-SIGNATURE': signature,
    'Cache-Control': "no-cache"
    }

response = requests.post(url, headers=request_headers)

my_trades = response.json()
print(my_trades)

一开始,它会运行,但会给我一个错误,告诉我没有指定帐户。然后,在没有任何改变的情况下,它突然完全停止了工作。因此,尽管我仍然在访问API时遇到了一些问题,但我甚至不能再找到错误来试图找出原因。现在我得到的是一个JSON解码错误,如下所示:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "c:\Users\david\Desktop\Code Projects\GeminiTrader\GeminiTrader-v0.1.py", 
line 33, in <module>
    my_trades = response.json()
  File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\site-packages\requests-2.25.1-py3.9.egg\requests\models.py", line 900, in json
    return complexjson.loads(self.text, **kwargs)
  File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\david\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

是什么导致了这个json解码问题?当API由于帐户参数错误而简单地拒绝我的请求时,为什么它以前没有出现?为什么在我没有修改代码的情况下,它突然变成了这个错误?我怎么才能修复它?我一直在安装请求并让它正常工作时遇到问题,也许我在这个过程中搞砸了什么?

当然,在修复这个问题之后,我将有一系列新的问题需要修复,因为关于这个API的文档非常糟糕。任何在这个项目进展中的帮助都将非常感谢!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 00:10:46

当您调用API时,您的API调用可能会失败,并且只返回字符串或空响应。我建议您首先检查响应的状态代码,如下所示,然后处理json数据。

代码语言:javascript
运行
复制
    data = requests.post() 
    if data.status_code != 200:
        raise Exception("Error", data.reason) 
   json_data = data.json()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65670364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档