Конвертировать экранированные символы с помощью Python

не знают много о доступе, но основы для этого должны быть

for i = 2 to 2 * LastSequencenumber
    x(i) = "XX-033inRF6005" & format(int(i/2),"000")
next i

Конечно, вы можете как-то прочитать значения из своей таблицы, но я не знаю, как это сделать при доступе

0
задан jmd 19 January 2019 в 16:10
поделиться

1 ответ

(В этом ответе я предполагаю, что вы используете Python 2.)

Сначала позвольте мне объяснить, почему ваш фрагмент кода возвращает что-то другое, чем вы ожидаете:

r1 = json.dumps({"detalle":"el Expediente N\u00b0\u00a030 de la Resoluci\u00f3n 11..."}, ensure_ascii=False).encode('utf8')
print(r1)
r2 = json.dumps({"detalle":u"el Expediente N\u00b0\u00a030 de la Resoluci\u00f3n 11..."}, ensure_ascii=False).encode('utf8')
print(r2)

Это выводит :

{"detalle": "el Expediente N\\u00b0\\u00a030 de la Resoluci\\u00f3n 11..."}
{"detalle": "el Expediente N° 30 de la Resolución 11..."}

Разница заключается в том, что в первом случае входная строка представляет собой код ascii, с косыми чертами и другими символами для представления специальных символов, а во втором случае строка представляет собой строку Юникода с символы Юникода. Второй случай - это то, что вы хотите.

Исходя из этого, вот что я понимаю из вашей проблемы:

Обычно, когда вы читаете файл JSON с модулем json, строки (которые экранируются в файле JSON) не экранируются парсер. Если вы все еще видите экранированные символы, это означает, что строки (случайно?) Дважды экранированы в файле JSON. В этом случае попробуйте дополнительный unescape с s.decode('unicode-escape'):

data["detalle"] = data["detalle"].decode('unicode-escape')

Как только вы загрузите в Python правильные строки юникода, преобразование их в байты с помощью s.encode('utf8') и запись результата в файл верны . [+1112]

0
ответ дан pj.dewitte 19 January 2019 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: