[python] Python urllib2 : URL에서 JSON 응답 수신
Python을 사용하여 URL을 얻으려고하는데 응답은 JSON입니다. 그러나 내가 달리면
import urllib2
response = urllib2.urlopen('https://api.instagram.com/v1/tags/pizza/media/XXXXXX')
html=response.read()
print html
html은 str 유형이며 JSON이 필요합니다. 응답을 str 대신 JSON 또는 python 사전으로 캡처 할 수있는 방법이 있습니까?
답변
URL이 유효한 JSON 인코딩 데이터를 반환하는 경우 json
라이브러리 를 사용하여 디코딩합니다.
import urllib2
import json
response = urllib2.urlopen('https://api.instagram.com/v1/tags/pizza/media/XXXXXX')
data = json.load(response)
print data
답변
import json
import urllib
url = 'http://example.com/file.json'
r = urllib.request.urlopen(url)
data = json.loads(r.read().decode(r.info().get_param('charset') or 'utf-8'))
print(data)
urllib , Python 3.4 용
HTTPMessage , r.info ()에서 반환
답변
"""
Return JSON to webpage
Adding to wonderful answer by @Sanal
For Django 3.4
Adding a working url that returns a json (Source: http://www.jsontest.com/#echo)
"""
import json
import urllib
url = 'http://echo.jsontest.com/insert-key-here/insert-value-here/key/value'
respons = urllib.request.urlopen(url)
data = json.loads(respons.read().decode(respons.info().get_param('charset') or 'utf-8'))
return HttpResponse(json.dumps(data), content_type="application/json")
답변
유효성 검사 등에 대해주의를 기울이십시오. 그러나 직접적인 해결책은 다음과 같습니다.
import json
the_dict = json.load(response)
답변
resource_url = 'http://localhost:8080/service/'
response = json.loads(urllib2.urlopen(resource_url).read())
답변
Python 3 표준 라이브러리 한 줄 :
load(urlopen(url))
# imports (place these above the code before running it)
from json import load
from urllib.request import urlopen
url = 'https://jsonplaceholder.typicode.com/todos/1'
답변
이미 대답 한 것 같지만 여기에 조금 더하고 싶습니다
import json
import urllib2
class Website(object):
def __init__(self,name):
self.name = name
def dump(self):
self.data= urllib2.urlopen(self.name)
return self.data
def convJSON(self):
data= json.load(self.dump())
print data
domain = Website("https://example.com")
domain.convJSON()
참고 : json.load ()에 전달 된 객체는 .read ()를 지원해야 하므로 urllib2.urlopen (self.name) .read () 가 작동하지 않습니다. 전달 된 Doamin은 프로토콜과 함께 제공되어야합니다.이 경우 http