如何在Python中处理从请求库获得的JSON数据?
我对使用API键比较陌生。我尝试了IG Markets API并获得了以下信息。通过使用r.json(),我成功地创建了类型(dictionary)。我想知道如何处理这类数据并以“更好”的方式访问这些值 我试过使用: 对于键,数据()中的值: 打印(键、值) 和 数据[“位置”] 但字典似乎只包含一个键。感谢您的帮助如何在Python中处理从请求库获得的JSON数据?,python,json,pandas,python-requests,json-normalize,Python,Json,Pandas,Python Requests,Json Normalize,我对使用API键比较陌生。我尝试了IG Markets API并获得了以下信息。通过使用r.json(),我成功地创建了类型(dictionary)。我想知道如何处理这类数据并以“更好”的方式访问这些值 我试过使用: 对于键,数据()中的值: 打印(键、值) 和 数据[“位置”] 但字典似乎只包含一个键。感谢您的帮助 data = r.json() print(data) {'positions': [{'market': {'bid': 1719.59,
data = r.json()
print(data)
{'positions': [{'market': {'bid': 1719.59,
'delayTime': 0,
'epic': '-',
'expiry': '-',
'high': 1749.95,
'instrumentName': 'Sverige30 Cash (100SK)',
'instrumentType': 'INDICES',
'lotSize': 100.0,
'low': 1713.33,
'marketStatus': 'TRADEABLE',
'netChange': -25.44,
'offer': 1721.09,
'percentageChange': -1.46,
'scalingFactor': 1,
'streamingPricesAvailable': True,
'updateTime': '22:15:16',
'updateTimeUTC': '21:15:16'},
'position': {'contractSize': 100.0,
'controlledRisk': False,
'createdDate': '2020/07/13 23:12:53:000',
'createdDateUTC': '2020-07-13T21:12:53',
'currency': 'USD',
'dealId': '',
'dealReference': '',
'direction': 'BUY',
'level': 1720.74,
'limitLevel': None,
'limitedRiskPremium': None,
'size': 5.0,
'stopLevel': None,
'trailingStep': None,
'trailingStopDistance': None}}]}
假设您的数据结构可以大得多,并且可能有多个
'positions'
,您可以循环'positions'
并检索每个位置的大小,如下所示:
for pos in data['positions']:
size = pos['position']['size']
print(size)
印刷品:
5.0
假设您的数据结构可以大得多,并且可能有多个'positions'
,您可以循环'positions'
并检索每个位置的大小,如下所示:
for pos in data['positions']:
size = pos['position']['size']
print(size)
印刷品:
5.0
- 在这个示例中,只有一条记录,因此我创建了一个示例,其中在
位置有多条记录
- 我会使用熊猫来访问所有的数据
将熊猫作为pd导入
#创建数据帧
df=pd.json_规范化(数据“位置”)
#显示(df)
market.bid market.delayTime market.epic market.Expiration market.high market.instrumentName market.LotusSize market.low market.marketStatus market.netChange market.offer market.percentageChange market.scalingFactor market.streamingPricesAvailable market.updateTime market.updateTimeUTC position.contractSizeposition.ControlledDisk position.createdDate position.createdDateUTC position.currency position.dealId position.dealReference position.direction position.level position.limitLevel position.limitedRiskPremium position.size position.stopLevel position.trailingStep position.TrailingStopDistan
0 1719.59 0--1749.95 Sverige30现金(100SK)指数100.0 1713.33可交易-25.44 1721.09-1.46 1真22:15:16 21:15:16 100.0假2020/07/13 23:12:53:000 2020-07-13T21:12:53美元购买1720.74无5.0无
1719.59 0--1749.95 Sverige30现金(100SK)指数100.0 1713.33可交易-25.44 1721.09-1.46 1真22:15:16 21:15:16 100.0假2020/07/13 23:12:53:000 2020-07-13T21:12:53美元购买1720.74无5.0无
2 1719.59 0--1749.95 Sverige30现金(100SK)指数100.0 1713.33可交易-25.44 1721.09-1.46 1真22:15:16 21:15:16 100.0假2020/07/13 23:12:53:000 2020-07-13T21:12:53美元购买1720.74无5.0无
3 1719.59 0--1749.95 Sverige30现金(100SK)指数100.0 1713.33可交易-25.44 1721.09-1.46 1真22:15:16 21:15:16 100.0假2020/07/13 23:12:53:000 2020-07-13T21:12:53美元购买1720.74无5.0无
数据
具有多条记录
- 在这个示例中,只有一条记录,因此我创建了一个示例,其中在
位置有多条记录
- 我会使用熊猫来访问所有的数据
将熊猫作为pd导入
#创建数据帧
df=pd.json_规范化(数据“位置”)
#显示(df)
market.bid market.delayTime market.epic market.Expiration market.high market.instrumentName market.LotusSize market.low market.marketStatus market.netChange market.offer market.percentageChange market.scalingFactor market.streamingPricesAvailable market.updateTime market.updateTimeUTC position.contractSizeposition.ControlledDisk position.createdDate position.createdDateUTC position.currency position.dealId position.dealReference position.direction position.level position.limitLevel position.limitedRiskPremium position.size position.stopLevel position.trailingStep position.TrailingStopDistan
0 1719.59 0--1749.95 Sverige30现金(100SK)指数100.0 1713.33可交易-25.44 1721.09-1.46 1真22:15:16 21:15:16 100.0假2020/07/13 23:12:53:000 2020-07-13T21:12:53美元购买1720.74无无5.0