Python двойные двойные кавычки не заменяются - PullRequest
0 голосов
/ 14 июля 2020

У меня есть список строк в фрейме данных, и я хотел бы заменить двойные двойные кавычки "" на одинарные двойные кавычки ", используя Python. Однако, как бы я ни старался, он не заменяется. Я пробовал следующие:

text['document'] = text['document'].apply(lambda x : x.replace('\"\"', 'TEST'))

и

text['document'] = text['document'].apply(lambda x : re.sub('\"{2}', 'TEST', x))

Есть идеи, как заставить его работать? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Из комментариев, Кажется, JSON Serialization проблема, вы пробовали json.loads,

In [7]: import json

In [8]: text
Out[8]: '"It\'s like having your own house."'

In [9]: json.loads(text)
Out[9]: "It's like having your own house."

или загружали json файл таким образом:

In [10]: with open('some_json_file.json','r') as f:
    ...:     data = json.load(f)
0 голосов
/ 14 июля 2020

Pandas автоматически анализирует экранированные двойные кавычки и сохраняет их как двойные кавычки в исходном виде. Поэтому вы можете заменить их как таковые. Пример:

x = pandas.DataFrame(['\"\"'])
x = x.replace('""', "TEST")

x теперь будет иметь одну запись, содержащую TEST. Просто убедитесь, что при их замене вы используете одинарные кавычки ' или тройные двойные кавычки """, чтобы содержать строку, как я сделал в примере. Изменить: похоже, проблема на самом деле связана с тем, что текст примера был перед загрузкой, фактический текст был загружен через json .loads, что означает, что самые внешние кавычки были удалены, и вам просто нужно заменить вместо этого одинарную кавычку.

...