python - 为什么 Oanda 订单请求会给出错误消息?
问题描述
我正在尝试向 Oanda 发送订单请求,但收到以下错误消息:{"errorMessage":"Unable to parse JSON body."}。我一直在研究这个问题一个星期,但没有找到解决方案。我检查并重新检查了所有 Oanda API 要求,一切似乎都是正确的。似乎身份验证很好,当我将 POST 方法更改为 GET 并稍微更改代码时,我会从我的帐户中收到所有交易历史记录。我对 V20 Python 包装器不感兴趣,我宁愿从头开始编写所有代码。根据该消息,我发送的订单请求似乎不正确,原因可能是请求库使用不当或参数问题。任何输入如何使代码工作将不胜感激。谢谢你。
import requests
domain = 'api-fxpractice.oanda.com'
access_token = 'TOKEN'
account_id = 'ACCOUNT_ID'
Pair = "EUR_USD"
url = "https://" + domain + "/v3/accounts/" + account_id + "/orders"
headers = {"Authorization" : "Bearer " + access_token}
params = {
"type": "MARKET",
"instrument": "EUR_USD",
"units": "100",
"timeInForce": "FOK",
"positionFill": "DEFAULT"
}
RequestData = requests.post(url, headers = headers, params = params)
print(RequestData.text)`
解决方案
看起来 API 在正文中需要 JSON,所以要实现这一点,请导入 json 库:
import json
params = params
对于data = json.dumps(params)
将 POST 正文中的数据作为 JSON 发送的请求更改。完整的请求将是:
RequestData = requests.post(url, headers = headers, data = json.dumps(params))
推荐阅读
- clickonce - 如何在多个环境中更改 ClickOnce 的桌面图标
- ios - 应用程序进入后台时如何停止 AirPlay 媒体暂停
- c - 如何在 Visual Studio 2019 中对 C 语言进行语法检查和格式化代码?
- html - 在 gmail 中显示的锚标签
- apache-spark - 使用 jobserver 在 Spark 上运行批处理和实时作业
- java - 浏览器未针对第二个 TestNG 测试用例启动
- r - RStudio 中的 install_keras(),tensorflow 2.4.0 需要 gast==0.3.3,但是你有 gast 0.4.0,这是不兼容的
- git - 子树中的 Git 子模块?
- axapta - Microsoft D365 FnO - 将用户选项 > 工作流中的“在电子邮件中发送通知”复选框的默认值设置为 true
- jsf - 选择更改并单击离开后,rowsPerPageTemplate 下拉菜单消失