Замените двойные кавычки одинарными кавычками внутри определенного текстового поля в файле. питон - PullRequest
0 голосов
/ 24 июня 2019

Итак, у меня есть несколько файлов json, которые они имеют в определенном смысле этого слова:

"message": "Merge branch " master " of example-week-18"

И хотя в элементах сообщений есть двойные кавычки, json уничтожается.

Итак, я по сутихотите использовать метод строки replace(), но заменить двойные кавычки одинарными кавычками внутри двойных кавычек элемента сообщений.Я думаю, что я должен использовать регулярное выражение + replace ().?

Желаемый результат будет следующим:

ВХОД:

"message": "Merge branch " master " of example-week-18"

"message": "Don"t do it"

ВЫХОД:

"message": "Merge branch ' master ' of example-week-18"

"message": "Don't do it"

1 Ответ

0 голосов
/ 24 июня 2019

Ты прав.Вы можете комбинировать регулярное выражение и метод replace.

Здесь я использую модуль re, чтобы найти все содержимое сообщения (блок после «message:»).Затем я заменяю двойные кавычки простыми кавычками.Наконец, я воссоздаю исходное целое сообщение.

Вот код:

# Import module
import re 

# Your text
message = """
"message": "Merge branch " master " of example-week-18"

"message": "Don"t do it"
"""

new_text = ""

# Select all the data after: "message":
list_message = re.findall("\"message\"\s*:\s*?(\".*)", message)

# Replace the " by ' in text message content + rebuild original row
for message in list_message:
    new_text += '"message": "' + message[1:-1].replace('"', "'") + '"\n'

print(new_text)
# "message": "Merge branch ' master ' of example-week-18"
# "message": "Don't do it"

Надеюсь, это поможет!

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