В настоящее время у меня JSON в формате ниже. Некоторые из значений ключа НЕ правильно отформатированы, поскольку отсутствуют двойные кавычки (")
Как исправить эти ключевые значения, чтобы иметь двойные кавычки?
{
Name: "test",
Address: "xyz",
"Age": 40,
"Info": "test"
}
Необходимые:
{
"Name": "test",
"Address": "xyz",
"Age": 40,
"Info": "test"
}
Используя следующую запись, я смог найти такие ключевые значения в вышеупомянутом INVALID JSON. Однако я не мог найти эффективный способ заменить найденные значения двойными кавычками.
s = "Example: String"
out = re.findall(r'\w+:', s)
Использование Regex:
import re
data = """{ Name: "test", Address: "xyz"}"""
print( re.sub("(\w+):", r'"\1":', data) )
Выход:
{ "Name": "test", "Address": "xyz"}
У меня было еще несколько проблем, с которыми я столкнулся в своем JSON. Мысль делиться окончательным решением, которое сработало для меня.
jsonStr = re.sub("((?=\D)\w+):", r'"\1":', jsonStr)
jsonStr = re.sub(": ((?=\D)\w+)", r':"\1"', jsonStr)
Кроме того, выше будет исключена двойная кавычка в метку времени даты, которая имеет: (двоеточие) в них.