Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2015 08:55:50

i.slepov
Зарегистрирован: 2015-05-28
Сообщения: 53
Репутация: +  5  -
Профиль   Отправить e-mail  

Кодировки и JSON

Ситуация для Python 3

>>> a = "\u041c\u0430\u0441\u043b\u043e"
>>> a
'Масло'
>>> json.dumps({'a': a})
'{"a": "\\u041c\\u0430\\u0441\\u043b\\u043e"}'
>>> 

Вопрос: Как получить русский текст в JSON?

Офлайн

#2 Сен. 1, 2015 09:36:19

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Кодировки и JSON

А в чем проблема? Это и есть русский текст.
Из RFC 7159:

JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32. The default
encoding is UTF-8…

If the character is in the Basic
Multilingual Plane (U+0000 through U+FFFF), then it may be
represented as a six-character sequence: a reverse solidus, followed
by the lowercase letter u, followed by four hexadecimal digits that
encode the character's code point. The hexadecimal letters A though
F can be upper or lower case. So, for example, a string containing
only a single reverse solidus character may be represented as
“\u005C”.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Сен. 1, 2015 09:38:11

J.R.
Зарегистрирован: 2015-07-18
Сообщения: 147
Репутация: +  16  -
Профиль  

Кодировки и JSON

$ python3
Python 3.3.1 (default, Apr 15 2013, 23:57:40) 
[GCC 4.7.2 20121109 (ALT Linux 4.7.2-alt7)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import json
>>> a = "Масло"
>>> json.dumps({'a': a}, ensure_ascii=False)
'{"a": "Масло"}'
>>> 

Офлайн

#4 Сен. 1, 2015 09:38:12

i.slepov
Зарегистрирован: 2015-05-28
Сообщения: 53
Репутация: +  5  -
Профиль   Отправить e-mail  

Кодировки и JSON

ОК. Спасибо.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version