Python - 将JSON数组转换为数据框

13
我有以下的JSON数组。
[
    {
        "foo"=1
    },
    {
        "foo"=2
    },
    ...
]

我想使用以下命令将其转换为DataFrame对象:pd.read_json()
df = pd.read_json(my_json) #my_json is JSON array above

然而,我遇到了错误,因为my_json是一个jsonlist/array。错误信息是ValueError: Invalid file path or buffer object type: <class 'list'>。除了遍历list,是否有更有效的方法来提取/转换JSONDataFrame对象?

你在示例中对列表调用了 read_csv - Ami Tavory
@AmiTavory @thebjorn 打错字了。已经更正为正确的函数名,即 read_json() - Darren Christopher
2个回答

22

使用 df = pd.DataFrame(YourList)

示例:

import pandas as pd

d = [
    {
        "foo":1
    },
    {
        "foo":2
    }
]

df = pd.DataFrame(d)
print(df)

输出:

   foo
0    1
1    2

5

你的问题有两个方面需要解决:

  1. 在一个列表上调用了to_csv
  2. JSON格式不正确,含有=符号而非:

这是我成功运行的代码:

import json
import pandas as pd

>>> pd.DataFrame(json.loads("""[
    {
        "foo": 1
    },
    {
        "foo": 2
    }
]"""))

   foo
0    1
1    2

您也可以直接调用read_json函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接