Python 非常嵌套的JSON,在dataframe中包含可选字段
我有一个具有以下结构的JSON。我想将一些数据提取到不同的列表中,以便能够将它们转换为数据帧Python 非常嵌套的JSON,在dataframe中包含可选字段,python,json,pandas,dataframe,dictionary,Python,Json,Pandas,Dataframe,Dictionary,我有一个具有以下结构的JSON。我想将一些数据提取到不同的列表中,以便能够将它们转换为数据帧 { "ratings": { "like": { "average": null, "counts": { "1": { "total": 0
{
"ratings": {
"like": {
"average": null,
"counts": {
"1": {
"total": 0,
"users": []
}
}
}
},
"sharefile_vault_url": null,
"last_event_on": "2021-02-03 00:00:01",
],
"fields": [
{
"type": "text",
"field_id": 130987800,
"label": "Name and Surname",
"values": [
{
"value": "John Smith"
}
],
{
"type": "category",
"field_id": 139057651,
"label": "Gender",
"values": [
{
"value": {
"status": "active",
"text": "Male",
"id": 1,
"color": "DCEBD8"
}
}
],
{
"type": "category",
"field_id": 151333010,
"label": "Field of Studies",
"values": [
{
"value": {
"status": "active",
"text": "Languages",
"id": 3,
"color": "DCEBD8"
}
}
],
}
}
例如,我创建了一个列表
names = []
其中,如果“字段”列表中的“标签”是“姓名和姓氏”,则我附加[“值”][0][“值”]
因此名称现在包含“John Smith”。我对“Gender”标签执行完全相同的操作,并将值附加到列表genders
上面的字典包含在一个字典列表中,因此我只需循环遍历该列表并提取如下相关字段:
names=[]
性别=[]
对于范围内的r(len(用户)):
对于范围内的i(len(用户[r].json()[“项]):
对于用户[r].json()[“项”][i][“字段”]中的字段:
如果字段[“标签”]=“姓名”:
name.append(字段[“值”][0][“值”])
elif字段[“标签”]=“性别”:
genders.append(字段[“值”][0][“值”][“文本”])
其他:
#别的
其中,users
是来自API的响应列表,其中每个JSON都有项
是一个字典列表,我可以在其中找到字段
键,该键的值是不同字段(如姓名、姓氏和性别)的字典列表
问题是带有“标签:研究领域”的词典是可选的,并且不总是出现在字段列表中
我如何检查它的存在,如果是这样,将它的值附加到列表中,否则将None
添加到列表中?在我看来,您拥有的数据似乎不是有效的JSON。然而,如果我是你,我会尝试使用。根据文档,如果遇到标签不在其内的对象,此函数将放置None