如何使用Python解析/提取嵌套JSON数据?

2024-10-01 07:20:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试从包含嵌套数据的JSON提要中提取产品数据。在

嵌套结构如下:http://live.icecat.biz/api/?shopname=openIcecat-live&lang=en&content=featuregroups&icecat_id=1334921

我基本上想提取数据库中产品的基本数据表信息。每个产品在“顶层”都有不同的功能类别,在嵌套结构下有不同的功能。在

到目前为止,我的代码是这样的:

import requests
url2 = 'http://live.icecat.biz/api/?shopname=openIcecat-live&lang=de&content=featuregroups&icecat_id=1334921'

content = requests.get(url).content

j = json.loads(content)    

for each in j['data']['FeaturesGroups']:
    print each ['FeatureGroup']['Name']['Value']

它可以很好地打印每个功能类别的标题。但我无法解析各个特征。我该怎么做?在

我尝试使用第二个循环来迭代j['data']['FeaturesGroups']['Features'](见下文),但没有成功:/

^{pr2}$

非常感谢!在


Tags: 数据功能apiidlivehttplang产品
2条回答
import requests
import json
url2 = 'http://live.icecat.biz/api/?shopname=openIcecat-live&lang=de&content=featuregroups&icecat_id=1334921'

content = requests.get(url2).content

j = json.loads(content)

for each in j['data']['FeaturesGroups']:
    print each['FeatureGroup']['Name']['Value']
    for i in each["Features"]:
        print i["ID"]
import requests
import json
url = 'http://live.icecat.biz/api/?shopname=openIcecat-live&lang=de&content=featuregroups&icecat_id=1334921'

content = requests.get(url).content

j = json.loads(content)    

def find_all(item, level):
    if isinstance(item, dict):
        for k in item:
            print k
            find_all(item[k],level+1)
    else:
        print ' '*level ,item

for each in j['data']['FeaturesGroups']:
    find_all(each['FeatureGroup'], 0)


ID
  3
Name
Language
   DE
ID
   437975
Value
   Speicher
ID
  28
Name
Language
   DE
ID
   437998
Value
   Betriebsbedingungen
ID
  146
Name
Language
   DE
ID
   624349
Value
   Weitere Spezifikationen

相关问题 更多 >