Я пытаюсь заменить экранированные двойные кавычки на одинарные в паре ключ-значение
import re
import json
js = r'{"result":"{\"key\":\"How are you? \"Great!\" he said. \"Coffee ?\"\"},{\"key\":\" 2. \"Why not sure\". They walked away\"}"}'
#print(js)
data1 = json.loads(js)
s = data1['result']
#print(s)
# {"key":"How are you? "Great!" he said. "Coffee ?""},{"key":" 2. "Why not, sure.". They walked away"}
p = re.compile(r"\"key\":\"(.*\"(.*)\".*)\"")
print(p.sub(r'\'\2\'',s))
# {\'Why not, sure.\'}
json_string = "[{0}]".format(p.sub(r'\'\1\'',s))
data_list = json.loads(json_string)
Используя приведенный выше код, я получил вывод «Coffee?» Вместо всей строки.Я хотел бы заменить двойную кавычку только в части значения.
Строка:"ключ": "Как дела?" Отлично! "Сказал он." Кофе? "",
Ожидаемая строка:"ключ": "Как дела? 'Отлично!'он сказал. «Кофе?»,