Python Pandas中嵌套结构化json的解析
我正在接收来自API的请求,并尝试使用Python Pandas中嵌套结构化json的解析,python,json,list,pandas,python-requests,Python,Json,List,Pandas,Python Requests,我正在接收来自API的请求,并尝试使用requestslibrary和json\u normalize()函数在Python中处理它。以下是我的步骤: import requests from pandas.io.json import json_normalize url = "Some String" headers = { 'Authorization':"Some Token"} response = requests.request("GET", url, headers=h
requests
library和json\u normalize()
函数在Python中处理它。以下是我的步骤:
import requests
from pandas.io.json import json_normalize
url = "Some String"
headers = {
'Authorization':"Some Token"}
response = requests.request("GET", url, headers=headers)
data = response.json()
df = json_normalize(data)
它给我这样的输出:
Col1 Col2
[{'text': 'sometext', 'date':'1528322400000',...}] [[1528322400000, 24], [1528322460000, 24]
我想解析列中的嵌套结构,从中生成数据帧并在日期合并
情况是,我可以像这样解析Col1
:df=json\u normalize(data['Col1'])
它会给我一个很好的数据框架,其中包含来自这个嵌套json的列,一切都很好
但是它不适用于Col2
,因为它基本上是列表。执行df=json\u normalize(数据['Col2'])
时,我收到一个错误:'list'对象没有属性“value”
我的问题是:
Col1
一样解析嵌套列表(使用json\u normalize()
或smth other)Col1
中一样对API本身和Col2
中的所有列名进行一些更改,以便更轻松地进行解析,会更容易吗谢谢 只需从col2内容中创建一个数据帧,它就能完美工作
>>> import pandas as pd
>>> pd.DataFrame([[1528322400000, 24], [1528322460000, 24]], columns=['c1','c2'])
c1 c2
0 1528322400000 24
1 1528322460000 24
这就是你想要的吗?只要从你的col2内容创建一个数据框,它就会工作得很好
>>> import pandas as pd
>>> pd.DataFrame([[1528322400000, 24], [1528322460000, 24]], columns=['c1','c2'])
c1 c2
0 1528322400000 24
1 1528322460000 24
这就是您想要的吗?如果json数据是一个包含键和值的字典列表,如下所示:
Data = [{'key1' : Value1,
'key2' : Value2},
{'key1' : Value3,
'key2' : Value4},
{'key1' : Value5,
'key2' : Value6}]
那么
import pandas as pd
from pandas.io.json import json_normalize
DF = pd.DataFrame.from_dict(json_normalize(Data), orient='columns')
将以以下格式提供数据帧:
key1 key2
0 Value1 Value2
1 Value3 Value4
2 Value5 Value6
希望这有帮助。如果json数据是一个包含键和值的字典列表,如下所示:
Data = [{'key1' : Value1,
'key2' : Value2},
{'key1' : Value3,
'key2' : Value4},
{'key1' : Value5,
'key2' : Value6}]
那么
import pandas as pd
from pandas.io.json import json_normalize
DF = pd.DataFrame.from_dict(json_normalize(Data), orient='columns')
将以以下格式提供数据帧:
key1 key2
0 Value1 Value2
1 Value3 Value4
2 Value5 Value6
希望这有帮助