【发布时间】:2023-03-16 05:59:01
【问题描述】:
我想遍历 JSON 文件的内容并将其打印到控制台。
我想我确实把一些东西和列表搞混了。
这就是我试图获取所有team_name 元素的方法
from urllib2 import urlopen
import json
url = 'http://openligadb-json.heroku.com/api/teams_by_league_saison?league_saison=2012&league_shortcut=bl1'
response = urlopen(url)
json_obj = json.load(response)
for i in json_obj['team']:
print i
这是我的 JSON(简体:)
{
"team": [
{
"team_icon_url": "http://www.openligadb.de/images/teamicons/Hamburger_SV.gif",
"team_id": "100",
"team_name": "Hamburger SV"
},
{
"team_icon_url": "http://www.openligadb.de/images/teamicons/FC_Schalke_04.gif",
"team_id": "9",
"team_name": "FC Schalke 04"
}
]
}
(可在此处找到完整的 JSON 输出:Link)
当然我得到一个错误,我应该在 [] 中使用整数输入,而不是字符串,但我不明白我该怎么做。
for i in json_obj['team']:
TypeError: string indices must be integers, not str
这里是response:
http://openligadb-json.heroku.com/api/teams_by_league_saison?league_saison=2012&league_shortcut=bl1
<addinfourl at 139755086292608 whose fp = <socket._fileobject object at 0x7f1b446d33d0>>
我做错了什么?
【问题讨论】:
-
你能打印
response吗? -
我无法重现您提供的简化 JSON 摘录的问题(在修复了其中的语法错误之后)。
-
我运行了这个,它对我有用。什么版本的 Python?
-
也适合我。检查 json_obj 和 json_obj['team'] 的类型。尝试使用您首先粘贴的 json sn-p,禁用 HTTP 请求。它可能并不总是返回您期望的结果。
-
我在 Ubuntu 12.04 上使用 Python 2.7.3