Найти - Пользователи
Полная версия: Проблемы с кодировкой при запросе к API
Начало » Python для новичков » Проблемы с кодировкой при запросе к API
1
Siarhei
Здравствуйте ещё раз.

Небольшой код. Элементарное действие. Берёт из файла значение параметра построчно и посылает запросы к 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)

Вот как должно быть: тык. А вот что у меня: тык-тык.
scidam
Нужно убрать “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())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB