从python中获取JSON数据有几个级别,没有名称

从python中获取JSON数据有几个级别,没有名称,python,json,csv,export-to-csv,readfile,Python,Json,Csv,Export To Csv,Readfile,所以我已经编写了一些简单的python代码来进行一些web抓取,我相当不在行,所以我有一个问题。我使用以下方式获取json数据: results = response.json() 这对我输入的站点和正确的参数没有问题 这个JSON文件有几个不同的组,其中一个名为“时刻”,它本身就相当深入 例如,为了得到我想要的一部分,我可以 print results['moments'][0][5] 但我真正想要的是 results['moments'][0][5] results['moments

所以我已经编写了一些简单的python代码来进行一些web抓取,我相当不在行,所以我有一个问题。我使用以下方式获取json数据:

results = response.json()  
这对我输入的站点和正确的参数没有问题

这个JSON文件有几个不同的组,其中一个名为“时刻”,它本身就相当深入

例如,为了得到我想要的一部分,我可以

print results['moments'][0][5]
但我真正想要的是

results['moments'][0][5]
results['moments'][1][5]
results['moments'][2][5]
results['moments'][3][5]
等等。。。通过几百次,所以我不确定如何迭代,并将[5]保持在下一层

我不只是使用结果的完整输出['moments']的原因是我想将其导出到excel,如果我只是使用csv_writer在上面写,那么

results['moments']
它实际上并没有用逗号分隔值,所以我在第1列中用长括号括起来,但是如果我进入第3级,当我输出到excel时,它将用逗号分隔

我相信有几种方法可以解决这个问题。 请参阅下面的代码 而不是做

results['moments'][0][5]
results['moments'][1][5]
results['moments'][2][5]
results['moments'][3][5]
您可以使用一个简单的列表理解来完成这项工作,在列表的长度上迭代
结果['moments']
。请注意,其他索引保持不变,如下所示:

locations = [results['moments'][i][5] for i in xrange(len(results['moments']))]


这就是你要找的吗?(假设粘贴的代码有效。)


Q是不可理解的。至少提供一个从
session.get()
返回的json示例。我希望看到传入的json和预期的输出。这与我想要的非常接近。谢谢
locations = [results['moments'][i][5] for i in xrange(len(results['moments']))]
locations = [moment[5] for moment in results['moments']]
response = session.get('http://xxxxxxxxxxxx', params=params)
results = response.json()
for i in xrange(len(results['moments'])):
  location = results['moments'][i][5]
  with open('Location'+str(i+1)+'.csv', 'wb') as test_file:
    csv_writer = csv.writer(test_file)        
    for y in location:        
      csv_writer.writerow(y)