I've been using pandas' json_normalize for a bit but ran into a problem with specific json file, similar to the one seen here: https://github.com/pandas-dev/pandas/issues/37783#issuecomment-1148052109
我试图找到一种方法来检索Ats-〉Ats dict中的数据,并将任何空值(如ID:101条目中看到的值)作为NaN值返回到 Dataframe 中。忽略json_normalize调用中的错误并不能防止试图迭代空值所导致的TypeError。
任何建议或方法,以接收一个有效的 Dataframe 的数据与这种结构是非常赞赏!
import json
import pandas as pd
data = """[
{
"ID": "100",
"Ats": {
"Ats": [
{
"Name": "At1",
"Desc": "Lazy At"
}
]
}
},
{
"ID": "101",
"Ats": null
}
]"""
data = json.loads(data)
df = pd.json_normalize(data, ["Ats", "Ats"], "ID", errors='ignore')
df.head()
TypeError: 'NoneType' object is not iterable
我尝试遍历Ats字典,它对ID为100的数据正常工作,但对ID为101的数据不工作。我期望忽略函数中的错误以在 Dataframe 中返回NaN值,但却收到了尝试遍历空值的TypeError。
所需的输出如下所示:Dataframe
2条答案
按热度按时间fdbelqdn1#
也许您可以正常地从
data
创建一个DataFrame(没有pd.json_normalize
),然后将其转换为请求的形式:图纸:
yxyvkwin2#
在
try
和except
中规范化,如果发现错误,则应使用NAN
将新行追加到DataFrame。示例:
输出: