我有一个Excel文件,其结构如下:
标题 | 列表 |
---|---|
标题_1 | ['str_1','str_2'] |
标题_2 | ['str_3','str_4'] |
我想获取json结构中的数据:
{"0":{"Title": "Title_1", "List": ['str_1', 'str_2']}, "1":{"Title": "Title_2", "List": ['str_3', 'str_4']}}
而不是:
{"0":{"Title": "Title_1", "List": "['str_1', 'str_2']"}, "1":{"Title": "Title_2", "List": "['str_3', 'str_4']"}}
如何使用Python中的pandas模块来实现这一点?
我已经尝试过:
df = pd.read_excel("my_excel.xlsx")
df.to_dict("index")
并得到:
{"0":{"Title": "Title_1", "List": "['str_1', 'str_2']"}, "1":{"Title": "Title_2", "List": "['str_3', 'str_4']"}}
要获得所需的数据类型,您可以尝试以下转换:
import ast
def convert_to_list(string_value):
try:
return ast.literal_eval(string_value)
except (ValueError, SyntaxError):
return string_value
df['List'] = df['List'].apply(convert_to_list)
此函数仅接受一个字符串值并执行以下操作:
ValueError
或 SyntaxError
它将返回原始字符串值