2016-12-19 3 views
0

이 URL에서 json 형식의 데이터를 구문 분석하려고합니다 : http://ws-old.parlament.ch/sessions?format=json. 내 브라우저는 json 데이터를 잘 처리합니다. 그러나 요청은 항상 다음과 같은 오류가 발생 :URL에서 파싱 할 때 Urllib 요청에서 디코딩 오류가 발생합니다.

JSONDecodeError : 기대 값을 : 3 행 1 열 (문자 4)

내가 파이썬 3.5를 사용하고 있습니다. 알려진 브라우저에 JS를 제공

import json 
import urllib.request 

connection = urllib.request.urlopen('http://ws-old.parlament.ch/affairs/20080062?format=json') 

js = connection.read() 

info = json.loads(js.decode("utf-8")) 
print(info) 
+1

오류가 urllib''에 의해 throw되지 않습니다. 그것은'json.loads()'라인에 의해 던져졌고, 분명히 * 유효한 * JSON 데이터를받지 못했을 것입니다. –

+1

Python으로로드 할 때 해당 URL에서 HTML 응답을받습니다. –

답변

2

사이트가 사용자 에이전트 필터링을 사용 그리고 이것은 내 코드입니다. 다행히 쉽게 단지 MozillaUser-Agent 헤더를 설정, 바보가되어

request = urllib.request.Request(
    'http://ws-old.parlament.ch/affairs/20080062?format=json', 
    headers={'User-Agent': 'Mozilla'}) 

connection = urllib.request.urlopen(request) 
js = connection.read() 

info = json.loads(js.decode("utf-8")) 
print(info) 
+0

마틴에게 감사 드려요. 이건 그냥 아름답게 작동합니다. – BarJacks