2016-12-19 1 views
0

Я пытаюсь проанализировать форматированные данные json с этого URL: http://ws-old.parlament.ch/sessions?format=json. Мой браузер отлично справляется с данными json. Но запросы всегда бросают следующую ошибку:Запрос Urllib вызывает ошибку декодирования при разборе с url

JSONDecodeError: Ожидать значение: линия 3 колонка 1 (полукокс 4)

Я использую Python 3.5. И это мой код:

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'. Это строка 'json.loads()', видимо, вы не получили * достоверные * данные JSON. –

+1

Я получаю ответ HTML от этого URL-адреса при загрузке с помощью Python. –

ответ

2

Сайт использует фильтрацию User-Agent, чтобы обслуживать JS только в известных браузерах. К счастью, это легко обмануть, просто установить заголовок User-Agent в Mozilla:

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

Большое спасибо Martjin, это просто прекрасно работает. – BarJacks

Смежные вопросы