Python for循环语法

时间:2015-11-27 23:20:48

标签: python loops

我最近开始学习编码,我在python中查询了一些for循环语法。我已经看过codecademy上的NPR API模块(我意识到,这不是一个学习任何东西的好环境),并且呈现for循环的方式让我感到困惑。有问题的部分:

from urllib2 import urlopen
from json import load

url = "http://api.npr.org/query?apiKey="
key = "API_KEY"
url += key
url += "&numResults=3&format=json&id="
npr_id = raw_input("Which NPR ID do you want to query?")
url += npr_id



print url

response = urlopen(url)
json_obj = load(response)

for story in json_obj["list"]["story"]:
    print story["title"]["$text"] 

我对

感到困惑
for story in json_obj["list"]["story"]:
    print story["title"]["$text"]

行。它是某种嵌套列表吗?

1 个答案:

答案 0 :(得分:2)

将json对象视为字典。

方括号表示法是如何访问json对象的。

基本上json_obj["list"]["story"]是一个带有字典数组的嵌套字典,如果密钥名称为json_obj["list"]["stories"]则更有意义。

json_obj有一个键“列表”,json_obj["list"]的值有一个“故事”键,每个故事都有一个“标题”。

这里有一个解析json的例子:Parsing values from a JSON file using Python?

这是json对象根据你编写它的方式看起来的结构:

json_obj = {
    'list': {
        # this is the array that is being iterated
        'story': [
            {'title': {
                '$text': 'some title1'
                }
            },
            {'title': {
                '$text': 'some title2'
                }
            },
            {'title': {
                '$text': 'some title3'
                }
            },
        ],
    },
  }

所以for循环:

for story in json_obj["list"]["story"]:
   # each iteration story become this
   # story = {'title': {'$text': 'some title2'}}
   print story["title"]["$text"] 

类似于:

print json_obj['list']['story'][0]['title']['$text']
print json_obj['list']['story'][1]['title']['$text']
print json_obj['list']['story'][2]['title']['$text']