如何将包含字典列表的 JSON 文件读取到 Pandas 数据框中?

scr*_*lex 5 python json pandas

我在 JSON 文件中有一个字典列表,如下所示:

[{"url": "http://www.URL1.com", "date": "2001-01-01"}, 
 {"url": "http://www.URL2.com", "date": "2001-01-02"}, ...]
Run Code Online (Sandbox Code Playgroud)

但是我正在努力将它导入到熊猫数据框中 - 这应该很容易,但我对此感到茫然。任何人都可以让我直接在这里?

同样,简单地将其读入字典列表以在 python 中使用的最佳方法是什么?

jez*_*ael 6

您可以使用from_dict

import pandas as pd

lis = [{"url": "http://www.URL1.com", "date": "2001-01-01"}, 
       {"url": "http://www.URL2.com", "date": "2001-01-02"}]

print pd.DataFrame.from_dict(lis)

         date                  url
0  2001-01-01  http://www.URL1.com
1  2001-01-02  http://www.URL2.com
Run Code Online (Sandbox Code Playgroud)

或者你可以使用DataFrame构造函数:

import pandas as pd

lis = [{"url": "http://www.URL1.com", "date": "2001-01-01"}, {"url": "http://www.URL2.com", "date": "2001-01-02"}]

print pd.DataFrame(lis)

         date                  url
0  2001-01-01  http://www.URL1.com
1  2001-01-02  http://www.URL2.com
Run Code Online (Sandbox Code Playgroud)


Bra*_*mon 6

虽然from_dict在这里可以工作,但规定的方法是使用pd.read_jsonwith orient='records'。这会解析一个输入

类似列表的[{column -> value}, ... , {column -> value}]

示例:假设这是以下文本lis.json

[{"url": "http://www.URL1.com", "date": "2001-01-01"}, 
 {"url": "http://www.URL2.com", "date": "2001-01-02"}]
Run Code Online (Sandbox Code Playgroud)

将文件路径本身作为输入传递,而不是像 @jezrael 的答案中那样传递列表:

print(pd.read_json('lis.json', orient='records'))
        date                  url
0 2001-01-01  http://www.URL1.com
1 2001-01-02  http://www.URL2.com
Run Code Online (Sandbox Code Playgroud)