python 如何在Pandas中将字符串列表转换为(对象)列表?

ygya80vv  于 2023-03-21  发布在  Python
关注(0)|答案(3)|浏览(125)

我有下面的字典,其中的值是字符串类型:

data = {'object_1':"['abc']",
'object_2':"['def']",
"object_3": "['xyz']",
"object_4": "['abc']"}

我想将字典的值从字符串类型转换为列表类型。我尝试使用literal_evaleval(),但没有成功获得纯python列表:

  • 所需输出:*
data = {'object_1':['abc'],
'object_2':['def'],
"object_3": ['xyz'],
"object_4": ['abc']}

谢谢你的建议。

czfnxgou

czfnxgou1#

如果我理解正确的话,你想把dict值从字符串"['def']"转换成一个包含字符串['def']的列表,对吗?如果是这样的话,你可以用正则表达式逻辑来完成。

import re 

data = {'object_1':"['abc']",
'object_2':"['def']",
"object_3": "['xyz']",
"object_4": "['abc']"}

exclude_brackets_quotes = lambda args: (args[0], [re.sub("[\[\]']", "", args[1])])

converted_data = dict(map(exclude_brackets_quotes, data.items()))
converted_data

此输出

{'object_1': ['abc'],
 'object_2': ['def'],
 'object_3': ['xyz'],
 'object_4': ['abc']}
i5desfxk

i5desfxk2#

试着这样使用ast.literal_eval

import ast

converted_data = {key: ast.literal_eval(value) for key, value in data.items()}

另一种解决方案是像这样使用strip

converted_data = {key: [value.strip("[]'")] for key, value in data.items()}
xdnvmnnf

xdnvmnnf3#

用不同的分隔符保存pandas文件拯救了这一天。

相关问题