3 回答
TA贡献1799条经验 获得超8个赞
查看实际的 JSON 数据:
{
"items": [
{
"project": "en.wikiversity",
"access": "all-access",
"year": "2018",
"month": "01",
"day": "all-days",
"articles": [
{
"article": "Psycholinguistics/Models_of_Speech_Production",
"views": 585462,
"rank": 1
},
{
"article": "Wikiversity:Main_Page",
"views": 118971,
"rank": 2
},
{
"article": "Special:Search",
"views": 60332,
"rank": 3
},
你不是在寻找,你实际上是在寻找items[n]['article|views']items[n]['articles'][n]['article|views']
def display(url, text):
print(url)
dictionary = json.loads(text)
for item in dictionary['items']:
for article in item['articles']:
print(f"{article['article']}:\t\t{article['views']}")
TA贡献1909条经验 获得超7个赞
你的代码只有一个问题:
您正在迭代的项上没有键。实际上,其中有一个文章列表。因此,如果您只是添加:article
for article in item['articles']:
它将工作(更改您的显示方法):
def display(url, text):
print(url)
dictionary = json.loads(text)
for item in dictionary['items']:
for article in item['articles']:
print(f"{article['article']}:\t\t{article['views']}")
TA贡献1852条经验 获得超7个赞
使用像火狐浏览器这样的 json 查看器来浏览 json。您没有正确引用它。
首先,该页面在项目中只有一个条目,因此迭代似乎很奇怪。
无论哪种方式,在您的for循环中,每个项目都是一个字典。有一个称为文章的关键是字典列表,因此您需要一个嵌套循环。
def display(url, text):
print(url)
dictionary = json.loads(text)
for item in dictionary['items']:
for article in item['articles']:
print(f"{article['article']}:\t\t{article['views']}")
添加回答
举报