[英]parsing nested semi structured json data with pandas and json_normalize with null value
[英]Parsing of nested structured json in Pandas
我正在从API接收请求,并尝试使用requests
库和json_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_normalize(data['Col1'])
它会给我很好的数据框,其中包含来自此嵌套json的列,一切都很好。
但这不适用于Col2
因为基本上是列表。 执行df = json_normalize(data['Col2'])
收到错误消息: 'list' object has no attribute 'values'
我的问题:
Col1
一样解析嵌套列表吗(使用json_normalize()
或其他方法)? Col2
API本身和所有列名进行一些更改,就像在Col1
,以便于解析,会更容易吗? 谢谢!
只需从您的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
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.