我有一个JSON对象正在从API中提取。我将JSON数据拉入python字典。我现在发现很难从字典中提取数据,因为它是嵌套的,并且有子列表和子字典。为了更好地理解所提取数据的性质,我尝试了以下方法:
url = "https://api.xyz.com/v11/api.json?KEY=abc&LOOKUP=bbb"
response = requests.get(url)
data = response.json()
print (type(data))
print(data.keys())
print (type(data['Results']))
print (len(data['Results']))
print (type(data['Results'][0]))
print (data['Results'][0].keys())
print (type(data['Results'][0]['Result']))
print ((data['Results'][0]['Result'].keys()))
print (type((data['Results'][0]['Result']['Paths'])))
print (len((data['Results'][0]['Result']['Paths'])))
print (type((data['Results'][0]['Result']['Paths'][0])))
print ((data['Results'][0]['Result']['Paths'][0].keys()))
print (type(data['Results'][0]['Result']['Paths'][0]['Technologies']))
print (len(data['Results'][0]['Result']['Paths'][0]['Technologies']))
print ((data['Results'][0]['Result']['Paths'][0]['Technologies'][8].keys()))
print (data['Results'][0]['Result']['Paths'][0]['Technologies'][8]['Tag'])
从上面,我得到了以下输出:
<class 'dict'>
dict_keys(['Results', 'Errors'])
<class 'list'>
1
<class 'dict'>
dict_keys(['Lookup', 'LastIndexed', 'FirstIndexed', 'Meta', 'Result'])
<class 'dict'>
dict_keys(['Paths', 'IsDB', 'Spend'])
<class 'list'>
9
<class 'dict'>
dict_keys(['LastIndexed', 'Technologies', 'Domain', 'SubDomain', 'FirstIndexed', 'Url'])
<class 'list'>
77
dict_keys(['FirstDetected', 'Name', 'LastDetected', 'Categories', 'Description', 'IsPremium', 'Tag', 'Link'])
cdn
从其他的迭代中,我知道根据我在“Paths”之后选择的列表项,我可以得到一个从5到100不等的“Technologies”列表长度。我特别感兴趣的是得到一个列表,其中所有技术的'标签'==a。我想能够创建一个表,所有的上层信息的所有条目有'标签'==a。理想情况下,我想得到这个信息在一个CSV文件。我已经看过Pandas dataframe from nested dictionary和Create a dictionary with list comprehension in Python和Construct pandas DataFrame from items in nested dictionary,但是在访问列表(特别是在“路径”之后)时会感到困惑。
由于我把数据转储到一个CSV单元中,所以它根本不是有用的。你知道吗
所以我想了个办法。代码如下。你知道吗
相关问题 更多 >
编程相关推荐