我想对lists进行以下转换tuple:
[('1599324732926-0',
{'data': '{"timestamp":1599324732.767,
"receipt_timestamp":1599324732.9256856,
"delta":true,
"bid":{"338.9":0.06482,"338.67":3.95535},
"ask":{"339.12":2.47578,"339.13":6.43172}
}'
}
)
('1599324732926-1',
{'data': '{"timestamp":1599324832.767,
"receipt_timestamp":1599324832.9256856,
"delta":true,
"bid":{"338.8":0.06482,"338.57":3.95535},
"ask":{"340.12":2.47578,"340.13":6.43172}
}'
}
)
]
进入listof dicts 或 Dataframe(无论是其中之一,无论如何从一个到另一个并不复杂):
[{
'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.9,
'size': 0.06482},
{'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.67,
'size': 3.95535},
{'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.66,
'size': 16.78636},
{'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.63,
'size': 2.5},
{'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.45,
'size': 6.06071},
{'timestamp': 1599324732.767,
'receipt_timestamp': 1599324732.9256856,
'delta': True,
'side': 'ask',
'price': 338.38,
'size': 0.0},
所以基本上,
第一个 id 被删除(实际上,它被保存在一个单独的列表中)。
其中的数据data
是一个具有嵌套字典的 JSON 对象。
诀窍在于“bid”和“ask”成为结果字典中名为“side”的键的值。
嵌套字典“bid”和“ask”的键成为结果字典中名为“price”的键的值。
价格的值保留名为“size”的键的值。
我能够单独处理列表中的每个 JSON 元素。但列表最多可以有 600k 个元素。我询问是否可以使用一些 pandas 或 numpy 函数来处理整个列表以加快速度?
我查看了 pandas json_normalize()
,但根据给出的示例,字典的键是系统列,而在这种情况下,“价格”键成为“价格”列的值。
你知道我该怎么做吗?有没有办法首先预处理 JSON 列表,以便可以使用json_normalize()
.
仅供参考,这是我可以编写的用于单独处理列表中每个元素的代码,但我认为这不是正确的方向。下一步是将其封装在 for 循环中,与管理整个列表的解决方案相比,这会慢得多。
幕布斯6054654
一只斗牛犬
相关分类