Python如何将含特殊字符的字符串转换为单元素元组
问题解答
错误原因
你判断错了,问题和<、>、'这些字符无关,核心是<Cell 'test'.B45>本身不是合法的Python可求值表达式。它是Excel操作库(比如openpyxl)中Cell对象的字符串打印形式,只是用来展示对象信息的文本,不是能直接用eval或ast.literal_eval解析的代码。
解决方法
分两种场景处理:
1. 仅需要把该字符串作为元素构造嵌套元组
直接手动构造元组即可,完全不需要用eval:
string = "<Cell 'test'.B45>" target_tuple = ((string,))
执行后target_tuple就是(("<Cell 'test'.B45>",)),打印形式和你要求的一致,元素为字符串类型。
2. 需要还原出真实的Cell对象
如果目标是得到真正的Cell对象而非字符串,没法通过这个字符串直接还原,必须从对应的Excel文件中重新读取:
以openpyxl库为例:
from openpyxl import load_workbook # 加载目标Excel文件 wb = load_workbook("你的Excel文件路径.xlsx") # 获取名为test的工作表 ws = wb["test"] # 获取B45单元格对象 cell = ws["B45"] # 构造嵌套元组 target_tuple = ((cell,))
此时打印target_tuple就会得到((<Cell 'test'.B45>)),里面的元素是真实的Cell对象。
内容的提问来源于stack exchange,提问作者11l
相关产品推荐
相关产品推荐

