Python - 在提取数据之前计算 JSON 元素

新手上路,请多包涵

我使用一个 API,它给我一个结构如下的 JSON 文件:

 {
offset: 0,
results: [
{
  source_link: "http://www.example.com/1",
  source_link/_title: "Title example 1",
  source_link/_source: "/1",
  source_link/_text: "Title example 1"
},
{
  source_link: "http://www.example.com/2",
  source_link/_title: "Title example 2",
  source_link/_source: "/2",
  source_link/_text: "Title example 2"
},
...

我在 Python 中使用这段代码来提取我需要的数据:

 import json
import urllib2

u = urllib2.urlopen('myapiurl')
z = json.load(u)
u.close
link = z['results'][1]['source_link']
title = z['results'][1]['source_link/_title']

问题是要使用它我必须知道我从中提取数据的元素的数量。我的 results 每次都可以有不同的长度,所以我想做的是首先计算 results 中的元素数量,这样我就可以建立一个循环来从每个元素中提取数据。

原文由 Hyperion 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 409
2 个回答

要检查结果键的长度:

 len(z["results"])

但是如果你只是绕着它们循环,那么 for 循环是完美的:

 for result in x["results"]:
    print(result["source_link"])

原文由 LexyStardust 发布,翻译遵循 CC BY-SA 3.0 许可协议

你不需要知道结果的长度,你可以使用 for 循环:

 for result in z['results']:
    # process the results here

无论如何,如果你想知道“结果”的长度: len(z.results)

原文由 fasouto 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏