Python: как исправить ключевые значения JSON без двойных кавычек?

1

В настоящее время у меня 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)

Как избежать двойной цитаты внутри JSON

Теги:

2 ответа

1
Лучший ответ

Использование Regex:

import re
data = """{ Name: "test", Address: "xyz"}"""
print( re.sub("(\w+):", r'"\1":',  data) )

Выход:

{ "Name": "test", "Address": "xyz"}
  • 0
    Большое спасибо Ракеш!
0

У меня было еще несколько проблем, с которыми я столкнулся в своем JSON. Мысль делиться окончательным решением, которое сработало для меня.

jsonStr = re.sub("((?=\D)\w+):", r'"\1":',  jsonStr)
jsonStr = re.sub(": ((?=\D)\w+)", r':"\1"',  jsonStr)
  1. Первая строка исправит эту проблему с двумя кавычками для ключа. т.е. Имя: "test"
  2. Вторая строка исправит проблему двойных кавычек для значения. т.е. "Информация": тест

Кроме того, выше будет исключена двойная кавычка в метку времени даты, которая имеет: (двоеточие) в них.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню