반응형
JSON 엔트리를 루프오버하려면 어떻게 해야 하나요?
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 출력은 다음 링크에서 확인할 수 있습니다.)
문자열이 아닌 []에 정수 입력을 사용해야 한다는 오류도 발생하지만 어떻게 해야 하는지 알 수 없습니다.
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>>
제가 뭘 잘못했나요?
실제로,team_name
마지막 줄에 괄호 안에 추가합니다.이와는 별도로 Python 2.7.3 명령어라인에서 동작하는 것 같습니다.
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['team_name']
다음을 시도해 보십시오.
import urllib, urllib2, json
url = 'http://openligadb-json.heroku.com/api/teams_by_league_saison?league_saison=2012&league_shortcut=bl1'
request = urllib2.Request(url)
request.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')
request.add_header('Content-Type','application/json')
response = urllib2.urlopen(request)
json_object = json.load(response)
#print json_object['results']
if json_object['team'] == []:
print 'No Data!'
else:
for rows in json_object['team']:
print 'Team ID:' + rows['team_id']
print 'Team Name:' + rows['team_name']
print 'Team URL:' + rows['team_icon_url']
json을 디코딩하려면 json 문자열을 전달해야 합니다.현재 개체를 전달하려고 합니다.
>>> response = urlopen(url)
>>> response
<addinfourl at 2146100812 whose fp = <socket._fileobject object at 0x7fe8cc2c>>
다음 방법으로 데이터를 가져올 수 있습니다.response.read()
.
언급URL : https://stackoverflow.com/questions/14547916/how-can-i-loop-over-entries-in-json
반응형
'programing' 카테고리의 다른 글
FormData 추가가 작동하지 않습니다. (0) | 2023.03.31 |
---|---|
Woocommerce 숍 페이지에서 제품 변형 이미지 가져오기 (0) | 2023.03.31 |
빈 ng-src는 이미지를 갱신하지 않습니다. (0) | 2023.03.26 |
ESLint: 'cy'가 정의되어 있지 않습니다(Cypress). (0) | 2023.03.26 |
log4j:WARN web.xml에서 로거용 부록을 찾을 수 없습니다. (0) | 2023.03.26 |