Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 8, 2016 19:05:21

Siarhei
Зарегистрирован: 2016-09-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с кодировкой при запросе к API

Здравствуйте ещё раз.

Небольшой код. Элементарное действие. Берёт из файла значение параметра построчно и посылает запросы к API. Если этот параметр на латинице - всё отлично. Но если в нём есть смесь кириллицы и латиницы, то не работает. Вернее, получает ответ от сервера, что ничего не найдено (видимо, он передаёт на сервер что-то не то).

В файле:
Young Money Entertainment
QR-код
Буш, Джордж Уокер

Код:

 # -*- coding: utf-8 -*-
import requests
import codecs
with codecs.open('test.txt', 'r', encoding='utf-8', errors='ignore') as allLines:
     list_line = allLines.read().splitlines()
# Делаем запрос для каждой строки
for line in list_line:
    data = {'action': 'query', 'format': 'json', 'titles': line, 'prop':'revisions', 'rvprop':'ids'}
    req = requests.post('https://ru.wikipedia.org/w/api.php', data=data)
    print(req.json())
    print(line)

Вот как должно быть: тык. А вот что у меня: тык-тык.

Офлайн

#2 Сен. 9, 2016 08:57:08

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

Проблемы с кодировкой при запросе к API

Нужно убрать “prop” и “rvprop” из запроса:

 #coding: utf-8
import requests
data = {'action': 'query', 'format': 'json', 'titles': u'QR-код'}
req = requests.post('https://ru.wikipedia.org/w/api.php', data=data)
print(req.json())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version