如何将Excel单元格值读取为Python列表类型?
如何将Excel中类列表格式的字符串转换为Python原生列表类型
你遇到的问题是:Excel单元格中存储的是类列表格式的字符串(比如"['https://mega.nz/folder/KXICCZrS#dJT2bqTh3eK_xbbMPuNglQ']"),直接用list()转换会把字符串拆成单个字符,而非解析成真正的Python列表对象。
解决方案:使用ast.literal_eval()安全解析
ast模块的literal_eval()方法可以安全识别字符串中的Python原生数据结构语法(列表、字典、元组等),并将其转换为对应的对象,完全符合你的需求。
完整代码示例
import pandas as pd import ast # 读取Excel文件 dataframe1 = pd.read_excel('Data.xlsx') # 读取mega_links列,将每个类列表字符串解析为原生列表,再转为列表格式 mega_linkss = dataframe1.iloc[:,7].apply(ast.literal_eval).tolist() # 验证结果 for link in mega_linkss: print(link, ' ', type(link)) break
输出结果
['https://mega.nz/folder/KXICCZrS#dJT2bqTh3eK_xbbMPuNglQ'] <class 'list'>
关键说明
- 为什么不用
list()?:list()函数会把字符串的每个字符拆分为列表元素,这不是你需要的解析逻辑。 - 为什么不用
eval()?:eval()会执行字符串中的任意代码,存在安全风险;而ast.literal_eval()仅处理合法的Python字面量,安全性更高。
内容的提问来源于stack exchange,提问作者Awan
相关产品推荐
相关产品推荐

