Python 无法将值列表解析为字符串列表

Python 无法将值列表解析为字符串列表,python,pandas,machine-learning,feature-extraction,Python,Pandas,Machine Learning,Feature Extraction,因此,我需要在python中解析一个值列表,并对其进行热编码,以用于特性工程。以下是我的功能集的“便利设施”列的一个示例中的值 x = {"Wireless Internet","Air conditioning",Kitchen,Heating,"Family/kid friendly",Essentials,"Hair dryer",Iron,"translation missing: en.hosting_amenity_50"} 这里的问题是,它既有大括号“{}”,也有双引号中的值,但

因此,我需要在python中解析一个值列表,并对其进行热编码,以用于特性工程。以下是我的功能集的“便利设施”列的一个示例中的值

x = {"Wireless Internet","Air conditioning",Kitchen,Heating,"Family/kid friendly",Essentials,"Hair dryer",Iron,"translation missing: en.hosting_amenity_50"}
这里的问题是,它既有大括号“{}”,也有双引号中的值,但在上面的示例中没有看到:Kitchen,Heating。如果我可以将上面的内容转换为字符串,那么我就知道如何删除大括号并将其拆分为一个列表


我需要将上述内容转换为一个项目列表,其中不在双引号中的值将变成字符串。

输入数据看起来已损坏。但是,最简单的方法是删除双引号,然后根据逗号分割。我避开了大括号部分,因为它也可以轻松删除:

s = '"Wireless Internet","Air conditioning",Kitchen,Heating,"Family/kid friendly",Essentials,"Hair dryer",Iron,"translation missing: en.hosting_amenity_50"'

print(s.replace('"','').split(","))
结果:

['Wireless Internet', 'Air conditioning', 'Kitchen', 'Heating', 'Family/kid friendly', 'Essentials', 'Hair dryer', 'Iron', 'translation missing: en.hosting_amenity_50']
当然,如果数据包含逗号,那就太糟糕了,因为由于缺少引号,无法区分字段中的逗号和分隔符逗号。。。否则,ast.literal\u eval解析将轻而易举

完全剥离curlybraces的东西需要一点更脏的工作,但可行:

s = 'x = {"Wireless Internet","Air conditioning",Kitchen,Heating,"Family/kid friendly",Essentials,"Hair dryer",Iron,"translation missing: en.hosting_amenity_50"}'

print(s.replace('"','').split("{")[1].rstrip('}').split(","))

x的类型是什么?一个集合?@excaza它看起来像一个文件中的文本-Kylo你能确认吗?x只是我使用的一个变量。数据如下:{无线互联网、空调、厨房、暖气、家庭/儿童友好型、必需品、吹风机、熨斗、翻译缺失:恩。托管设施{u 50}它真的有那些支架吗?如果没有,它将是CSV文件中的有效行。它确实有大括号。如果任何单个值中有逗号,则逗号拆分将不起作用。在本例中没有,但我猜要处理的数据比这一行还要多,无法判断逗号是否是分隔符。如果数据中有逗号,则输入不可解析。这里的输入数据显然有问题。@Jean-Françoisfar,你说得对,输入数据有问题。这只是99000个样本中的一个。因为我假设逗号是一个分隔符,所以您的解决方案是正确的!非常感谢你@Jean-Françoisfare:如果所有带逗号的值都有引号,那么数据可能仍然可以解析,这就是我的猜测。看起来引号只显示非单个单词的值。