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 中使用的最佳方法是什么?
您可以使用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)
虽然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)