如何将JSON数据(从API)转换为python数据?

2024-04-24 16:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,伙计们,我是来从API股票市场获取数据的。你知道吗

import zmq
context = zmq.Context()
socket = context.socket(zmq.SUB)
print("Recibo mensajes del servidor...")
socket.connect("tcp://XXXXXXXXXXXXXXXXXX")
socket.setsockopt_string(zmq.SUBSCRIBE, u'')
while True:
    JSON = socket.recv_json()
    print(JSON)

接收如下数据:

{'X': {'MDReqId': 'HUB22_1533207696768', 'MDIncGrp': [{'offer': {'OrderID': 
'', 'SettlType': '3', 'MDEntrySeller': '', 'Precio': '435', 
'MDEntryPositionNo': '1', 'SettlDate': '', 'MDEntrySize': 2000.0, 
'MDUpdateAction': '2', 'MDEntryTime': '10:37:56', 'Symbol': 'BA.C', 
'MDEntryBuyer': '', 'NumberOfOrders': '', 'MDEntryDate': '20180802'}}], 
'MDBookType': 2}}
{'X': {'MDReqId': 'HUB22_1533207696768', 'MDIncGrp': [{'bid': {'OrderID': '', 
'SettlType': '3', 'MDEntrySeller': '', 'Precio': '410', 'MDEntryPositionNo': 
'2', 'SettlDate': '', 'MDEntrySize': 24.0, 'MDUpdateAction': '0', 
'MDEntryTime': '10:37:56', 'Symbol': 'BA.C', 'MDEntryBuyer': '200', 
'NumberOfOrders': '', 'MDEntryDate': '20180802'}}, {'offer': {'OrderID': '', 
'SettlType': '3', 'MDEntrySeller': '046', 'Precio': '450', 
'MDEntryPositionNo': '1', 'SettlDate': '', 'MDEntrySize': 2000.0, 
'MDUpdateAction': '0', 'MDEntryTime': '10:37:56', 'Symbol': 'BA.C', 
'MDEntryBuyer': '200', 'NumberOfOrders': '', 'MDEntryDate': '20180802'}}, 
{'bid': {'OrderID': '', 'SettlType': '3', 'MDEntrySeller': '046', 'Precio': 
'433', 'MDEntryPositionNo': '1', 'SettlDate': '', 'MDEntrySize': 10.0, 
'MDUpdateAction': '0', 'MDEntryTime': '10:37:56', 'Symbol': 'BA.C', 
'MDEntryBuyer': '262', 'NumberOfOrders': '', 'MDEntryDate': '20180802'}}], 
'MDBookType': 3}}

我的问题是:

如何将JSON数据(从API)转换为python数据?你知道吗


Tags: socketzmqsymbolbaprecioorderidmdupdateactionmdentrysize
2条回答

你已经有了JSON(好吧,一个Pythondict但是Python的人认为它们是一样的东西)!你知道吗

运行此实验:

while True:
    json = socket.recv_json()

    print(json['X'])

    x = json['X']  # now `x` is the "same" as json['X']

    print(x['MDReqId'])  # this is equivalent to print(json['X']['MDReqId'])

    md_req_id = x['MDReqId']
    print(md_req_id)  # should output `HUB22_1533207696768`

recv_json得到的结果已经是一个内置的Python类型(dict)。所以你可以这样做:

JSON['x']

相关问题 更多 >