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']}")
添加回答
舉報