首页  >  问答  >  正文

python3.x - python连oanda的模拟交易api获取json问题第二问

在第一问中已解决连接oanda的模拟交易api获得EUR_USD的即时汇率,再次感谢@prolifes的热情帮助,其程序如下:
import requests
import json
url = "https://api-fxpractice.oanda.com/v1/prices"
instruments = 'EUR_USD'
account_id = 'cawa11'
params = {'instruments':instruments,'accountId':account_id}
access_token = 'a554db3a48ac8180a6996a5547ba1663-ac5947e64456cc5842a34f4ce05e4380'
headers = {'Authorization':'Bearer '+access_token} #Bearer后有空格
r = requests.get(url,headers = headers, params=params)
print(r.json())
所得json为:
{'prices': [{'bid': 1.0926, 'time': '2017-05-03T05:45:25.737018Z', 'ask': 1.09274, 'instrument': 'EUR_USD'}]}
现在我想同时获得EUR_USD和USD_CAD的即时汇率,获得如下形式的json:
{'prices': [{'instrument': 'EUR_USD', 'ask': 1.09324, 'time': '2017-05-03T04:44:38.200174Z', 'bid': 1.09311},{'instrument': 'USD_CAD', 'ask': 1.37270, 'time': '2017-05-03T04:44:38.200174Z', 'bid': 1.37251}]}

迷茫迷茫2712 天前651

全部回复(2)我来回复

  • 大家讲道理

    大家讲道理2017-05-18 10:57:43

    问题已解决,谢谢各位关注:
    导入请求
    导入json

    url = "https://api-fxpractice.oanda.com/v1/prices"
    instruments = 'EUR_USD,USD_CAD'
    account_id = 'cawa11'
    params = {'instruments':instruments,'accountId':account_id}
    access_token = 'a554db3a48ac8180a6996a5547ba1663-ac5947e64456cc5842a34f4ce05e4380'
    headers = {'连接':'保持活动','接受编码':'gzip,deflate','授权':'承载'+access_token}
    r = requests.get (url,headers = headers, params=params)
    price = r.json()
    print(r.json())
    print(price'prices'['instrument'].replace('_','/' ),':',round((price'prices'['ask']+price'prices'['bid'])/2,4),' ',price'prices'['time'])
    print (price'prices'['instrument'].replace('_','/'),':',round((price'prices'['ask']+price'prices'['bid'])/ 2,4),' ',价格'价格'['时间'])

    输出:
    {'prices': [{'bid': 1.09171, 'ask': 1.09184, 'instrument': 'EUR_USD', 'time': '2017-05-03T06:44:19.750556Z'}, { '买价': 1.37203, '卖价': 1.37219, '工具': 'USD_CAD', '时间': '2017-05-03T06:44:19.738338Z'}]}
    欧元/美元 : 1.0918 2017-05-03T06 :44:19.750556Z
    美元/加元 : 1.3721 2017-05-03T06:44:19.738338Z

    回复
    0
  • 漂亮男人

    漂亮男人2017-05-18 10:57:43

    这个已经不是技术层次的问题了,你应该去了解一下他的api有没有提供这个功能,如果没有提供同时获取两个的功能,那你只能分开来取,然后再合并起来

    回复
    0
  • 取消回复