Найти - Пользователи
Полная версия: Кирилица и Json
Начало » Python для новичков » Кирилица и Json
1
fuzeg
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json

d = {'a':'текст',
'b':{
'a':'текст2',
'b':'текст3'
}}
print(str(d))

w = open('log', 'w')
json.dump(d,w)
w.close()


В итоге получаю:
{“a”: “\u0442\u0435\u043a\u0441\u0442”, “b”: {“a”: “\u0442\u0435\u043a\u0441\u04422”, “b”: “\u0442\u0435\u043a\u0441\u04423”}}

Если не сложно то подскажите пожалуйста решение этой проблемы или посоветуйте нормальный язык.
WoMax
fuzeg
или посоветуйте нормальный язык.
учи албанский
py.user.next
>>> import json
>>> 
>>> d = {'a':'текст',
...      'b':{
...          'a':'текст2',
...          'b':'текст3'
...      }}
>>> 
>>> print(d)
{'b': {'b': 'текст3', 'a': 'текст2'}, 'a': 'текст'}
>>> 
>>> json.dumps(d)
'{"b": {"b": "\\u0442\\u0435\\u043a\\u0441\\u04423", "a": "\\u0442\\u0435\\u043a\\u0441\\u04422"}, "a": "\\u0442\\u0435\\u043a\\u0441\\u0442"}'
>>> json.dumps(d, ensure_ascii=False)
'{"b": {"b": "текст3", "a": "текст2"}, "a": "текст"}'
>>>
fuzeg
py.user.next

Пробывал уже.
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 1-5: ordinal not in range(128)
py.user.next
fuzeg
UnicodeEncodeError: 'ascii' codec can't encode characters
При открытии файла нужно указать кодировку.
fuzeg
Благодарю, сработало, два дня потратил на решение этой сверх-сложной сверх-задачи.
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