Я попытался сохранить этот словарь в файле json или yaml:
d = {'name': 'María Gómez', 'message': '¡Es una caña atómica!'}
with open(file, 'wt', encoding='iso8859-1') as file:
json.dump(d, file)
Однако содержимое файла не находится в этой кодировке, а символы, отличные от ascii, экранируются в файлах json или yaml. Поэтому я предполагаю, что файл кодировки не имеет смысла. Или есть какие-то языки или символы, кодировка которых может иметь смысл для файлов такого типа?
import json
d = {'name': 'María Gómez', 'message': '¡Es una caña atómica!'}
json.dumps(d)
# '{"name": "Mar\\u00eda G\\u00f3mez", "message": "\\u00a1Es una ca\\u00f1a at\\u00f3mica!"}'
json.dumps(d, ensure_ascii=False)
# '{"name": "María Gómez", "message": "¡Es una caña atómica!"}'
Объяснение (действительно как для json.dumps
, так и для json.dump
): Базовое использование кодировщика и декодера JSON:
If
ensure_ascii
is true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. Ifensure_ascii
is false, these characters will be output as-is.
Прочтите также Кодировки символов.