如何将包含字典列表的JSON文件读入pandas数据框?

时间:2016-01-10 17:06:17

标签: python json pandas

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

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

但是我很难将它导入到熊猫数据框架中 - 这应该很简单,但是我对它进行了消隐。有人能把我直接放在这里吗?

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

2 个答案:

答案 0 :(得分:2)

您可以使用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

或者您可以使用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

答案 1 :(得分:0)

虽然from_dict可以在此处使用,但规定的方式是将pd.read_jsonorient='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"}]

要将文件路径本身作为输入传递而不是像@ 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