#python #json #utf_8
Есть простая функция: def get_nbu(): URL = 'https://api.buh.privatbank.ua/ratenbu.php?year=1993' r = requests.get(URL) date = r.json() #<--- json.decoder.JSONDecodeError return date При попытке преобразовать полученный ответ в JSON получаю ошибку: Unexpected UTF-8 BOM (decode using utf-8-sig). Я нашел способы декодирования из файла но не могу найти решения для декодирования резултата GET-запроса (переменной). Как это решается?
Ответы
Ответ 1
Что-то в Приватбанке накосячили, т.к. в начале строки аж 3 сивмола BOM: In [79]: r.text Out[79]: '\ufeff\ufeff\ufeff[{"rate_date":"01.05.1993","rate_value":"240"},{"rate_date":"01.03.1993","rate_value":"100"}]' поэтому самым простым представляется такой "костыль": In [81]: r.text.lstrip('\ufeff') Out[81]: '[{"rate_date":"01.05.1993","rate_value":"240"},{"rate_date":"01.03.1993","rate_value":"100"}]' In [82]: import json In [83]: items = json.loads(r.text.lstrip('\ufeff')) In [84]: items Out[84]: [{'rate_date': '01.05.1993', 'rate_value': '240'}, {'rate_date': '01.03.1993', 'rate_value': '100'}]
Комментариев нет:
Отправить комментарий