fbpx

Как получить UTF-8 json вместо Unicode-закодированной?

579 просмотра
0
0 Комментариев

Вызываю с помощью через функцию exec() в PHP Python-скрипт, который должен вернуть мне json. Если вызывать скрипт через консоль, то вывод будет нормальным:

print(json.dumps(final_data, ensure_ascii=False))

{"visa_status": "needed", "primary_passport_requirement": "Не менее 6 месяцев на момент подачи паспорта в консульство", "visa_text": "Необходимо заранее оформлять в консульстве визу. Безвизовый въезд возможен на 30 дней для транзита в США, Канаду, Австралию, Новую Зеландию и Японию  и при наличии виз этих стран. 30 дней (если уже были в Южной Корее не менее 4 раз за последние 2 года, или всего не менее 10 раз)", "secondary_passport_requirement": "1 чистая страница"}

А вот при вызове через PHP происходит ошибка:

UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 59-60: ordinal not in range(128)

Если убрать ensure_ascii=False, то приходит абсолютная unescaped белиберда:

{"primary_passport_requirement": "\u041d\u0435 \u043c\u0435\u043d\u0435\u0435 6 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0430\u0447\u0438 \u043f\u0430\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0441\u0442\u0432\u043e", "visa_status": "needed", "secondary_passport_requirement": "1 \u0447\u0438\u0441\u0442\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", "visa_text": "\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c \u0432 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0441\u0442\u0432\u0435 \u0432\u0438\u0437\u0443. \u0411\u0435\u0437\u0432\u0438\u0437\u043e\u0432\u044b\u0439 \u0432\u044a\u0435\u0437\u0434 \u0432\u043e\u0437\u043c\u043e\u0436\u0435\u043d \u043d\u0430 30 \u0434\u043d\u0435\u0439 \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0430 \u0432 \u0421\u0428\u0410, \u041a\u0430\u043d\u0430\u0434\u0443, \u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044e, \u041d\u043e\u0432\u0443\u044e \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044e \u0438 \u042f\u043f\u043e\u043d\u0438\u044e  \u0438 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432\u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u0430\u043d. 30 \u0434\u043d\u0435\u0439 (\u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0432 \u042e\u0436\u043d\u043e\u0439 \u041a\u043e\u0440\u0435\u0435 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 4 \u0440\u0430\u0437 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 2 \u0433\u043e\u0434\u0430, \u0438\u043b\u0438 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 10 \u0440\u0430\u0437)"}

Как побороть эту проблему?


Добавить комментарий

0 Answers

Python Опубликовано 27.03.2019
Напишите свой ответ на данный вопрос.
Scroll Up