Python: декодировать закодированную строку в utf-8 внутри файла json - PullRequest
0 голосов
/ 20 марта 2020

У меня более 1 ГБ json файла с закодированными строками внутри. Например:

{
    "id": "3",
    "billing_type": {
        "id": "standard",
        "name": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442"
    },
    "area": {
        "id": "1",
        "name": "\u041c\u043e\u0441\u043a\u0432\u0430"
    }
}

Как я могу декодировать эту строку \u041c\u043e внутри моего json файла в моем случае?

Ответы [ 2 ]

2 голосов
/ 20 марта 2020

если вы используете python3, только import json поможет.

import json


result = json.loads(json_data)
print(result)

или python2, вы должны использовать метод encode для каждого значения (после проверки сначала)

result = json.loads(json_data)

for k, v in result.items():
    if isinstance(v, dict):
        for dk, dv in v.items():
            print dk.encode("utf-8"), dv.encode("utf-8")
    else:
        print k.encode("utf-8"), v.encode("utf-8")
1 голос
/ 20 марта 2020
data = "\u041c\u043e\u0441\u043a\u0432\u0430"
data = data.encode().decode('unicode-escape')

Это может быть решением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...