【发布时间】:2014-01-07 10:52:09
【问题描述】:
我正在尝试使用 Pandas 解析 JSON blob,而不解析嵌套的 JSON 结构。这是我的意思的一个例子。
import json
import pandas as pd
x = json.loads('{"test":"something", "yes":{"nest":10}}')
df = pd.DataFrame(x)
当我执行df.head() 时,我得到以下信息:
test yes
nest something 10
我真正想要的是……
test yes
1 something {"nest": 10}
关于如何使用 Pandas 做到这一点的任何想法?我有解决方法的想法,但我正在解析 GB 的 JSON 文件,并且不想依赖缓慢的 for 循环来转换和准备 Pandas 的信息。在仍然利用 Pandas 的速度的同时有效地做到这一点会很棒。
注意:对这个问题进行了更正以修复,以及关于我对 json 对象的引用的错误。
【问题讨论】:
-
这不是 JSON blob 或结构,它只是一个普通的 Python 字典。所以听起来你已经在其他地方将 JSON 解析为原生 Python 对象,这意味着你可能已经在做你不想做的事情。
-
感谢指正。我跳过了将 json 转换为字典的步骤。我已经编辑了上面的问题以反映这一点。
-
现在我什至不明白你希望完成什么。如果您没有像最初所说的那样尝试利用 Pandas 的速度进行 JSON 解析,那么您想要完成什么?如果您计时,我愿意打赌
json.parse的成本比使用例如字典理解的简单结构重新排列的成本高一个数量级。如果不是,请向我们展示你是如何做到的,展示它的慢点,验证它确实是一个值得优化的热点,并询问如何优化它。