Использование Regex для добавления цитат в список с разделителями - PullRequest
1 голос
/ 04 февраля 2020

У меня есть скопированный список, который я хочу преобразовать во фрейм данных pandas. Однако, когда я копирую тест, я получаю необработанные значения вместо строк. то есть foo, bar, buzz вместо " foo", "bar", "buzz", список заканчивается цифрами, которые я не хочу заключать в кавычки. Мне удалось выделить текст между 2 запятыми, включая запятую, используя ,[^,]+, но я не хочу включать запятую, потому что я хочу заменить текст внутри его завернутой в кавычки версией. Я не могу просто исключить числа из регулярного выражения, то есть ,[^,0-9]+, потому что в некоторые категории встроены числа (например, iPhone -6s или Toyota Rav4). Как бы я совершил sh это?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Предполагая, что ваш вход CSV будет в одной строке, вы можете попробовать:

inp = "foo, bar, buzz, make-model"
output = re.sub(r'\b([\w-]+)\b', '"\\1"', inp)
print(output)

Это напечатает:

"foo", "bar", "buzz", "make-model"
0 голосов
/ 04 февраля 2020

Вы можете попробовать ast.liter_eval() следующим образом:

import ast

my_string = "[1, 2, 'some_string', {'some':'dict'}]"
my_list = ast.literal_eval(my_string)

my_list, затем становится:

[1, 2, 'some_string', {'some': 'dict'}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...