Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字符串到列表的转换-分隔符问题_Python_Python 3.x - Fatal编程技术网

Python 字符串到列表的转换-分隔符问题

Python 字符串到列表的转换-分隔符问题,python,python-3.x,Python,Python 3.x,更新: ast.literal_eval的结果是: ValueError: malformed node or string: <_ast.Name object at 0x1e20594a8> 进入: *大规模地 注意:有许多列表,每个列表的大小都是唯一的,其值的长度也是唯一的。最明显的问题是“Doe,John”中的逗号 我尝试的是: 我可以。把头发的边缘分开刮,但我希望有一个更简单的解决办法 我尝试使用eval、ast.literal\u eval和ast.parse显然,我不

更新: ast.literal_eval的结果是:

ValueError: malformed node or string: <_ast.Name object at 0x1e20594a8>
进入:

*大规模地

注意:有许多列表,每个列表的大小都是唯一的,其值的长度也是唯一的。最明显的问题是“Doe,John”中的逗号

我尝试的是: 我可以。把头发的边缘分开刮,但我希望有一个更简单的解决办法

我尝试使用eval、ast.literal\u eval和ast.parse显然,我不知道我在做什么

示例代码: 输出样本:

['Social Perception', 'Perception, Social', 'Perceptions, Social', 'Social Perceptions']
它看起来就像一个列表,但我需要它实际上是一个列表

谢谢大家!

原始答案 如果它看起来像一个列表,那么

eval(your_text)
将它转换为适当的列表。就这么简单

更新 刚才在上面的链接中看到了答案。 导入ast 然后 ast.literal\u eval
这确实是正确的做法

引发了异常:错误:未定义名称“fubar”。我找出了问题所在,并将随解决方案发表评论。谢谢,当有更好的选项时,请不要建议邪恶评估:@Matthias这些选项是什么?@AsherSebban:ast.literal\u评估速度较慢,但功能尽可能全面,无需引入安全漏洞,解析任何合法的Python literal表达式或json.loads更快,但仅适用于json,它不如Python文本灵活。您的输入似乎有未加引号的字符串,例如fubar,因此eval可能无法正确解析这些字符串,而只能通过加载现有fubar变量来解析,这可能不是您想要的。听起来您的输入可能是JavaScript文本,而JSON不允许。
'''
File contains a list of dictionaries
For each dictionary, one key contains a nested list
Except, the list is actually a string, which is annoying
'''
for dictionary in my_file:
        for key,value in dictionary.items():
            if key == 'mylist': 
                print(value)
['Social Perception', 'Perception, Social', 'Perceptions, Social', 'Social Perceptions']
eval(your_text)