使用正则表达式将引号添加到分隔列表



我有一个复制的列表,我想转换为熊猫数据框。但是,当我复制测试时,我得到的是原始值而不是字符串。即foo, bar, buzz而不是" foo", "bar", "buzz"列表,而是以我不想用引号括起来的数字结尾。我能够使用,[^,]+在 2 个逗号(包括逗号(之间选择文本,但我不想包含逗号,因为我想用其引号包装版本替换里面的文本。我不能简单地从正则表达式中排除数字,即,[^,0-9]+因为某些类别中嵌入了数字(例如 iPhone-6 或丰田 Rav4(。我将如何实现这一点?

假设您的 CSV 输入在单个字符串中,您可以尝试:

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

这将打印:

"foo", "bar", "buzz", "make-model"

你可以像这样尝试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'}]

最新更新