读取Excel文件报错:TypeError: expected ;
# 代码:
import pandas as pd
from openpyxl import load_workbook
# 定义 Excel 文件路径
file_path = r"日分成数据_2023-10-01-2023-10-31898736884.xlsx"
# 尝试加载工作簿
workbook = load_workbook(file_path)
sheet = workbook.active
# 读取数据并处理转换
for row in sheet.iter_rows(values_only=True):
for value in row:
try:
# 尝试将值转换为整数
if value is not None: # 检查值是否为 None
converted_value = int(value)
print(converted_value)
else:
print("值为 None,跳过转换")
except (ValueError, TypeError):
# 处理转换错误
print(f"无法转换值: {value}")
# 报错
Traceback (most recent call last):
File "E:\Anoconda1\Lib\site-packages\openpyxl\descriptors\base.py", line 59, in _convert
value = expected_type(value)
^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '2.5'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\ProgramData\TCZY\CDB\Meituan\re_built\transactions.py", line 9, in <module>
workbook = load_workbook(file_path)
^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Anoconda1\Lib\site-packages\openpyxl\reader\excel.py", line 348, in load_workbook
reader.read()
File "E:\Anoconda1\Lib\site-packages\openpyxl\reader\excel.py", line 303, in read
self.read_worksheets()
File "E:\Anoconda1\Lib\site-packages\openpyxl\reader\excel.py", line 237, in read_worksheets
ws_parser.bind_all()
File "openpyxl\\worksheet\\_reader.py", line 465, in openpyxl.worksheet._reader.WorksheetReader.bind_all
File "openpyxl\\worksheet\\_reader.py", line 368, in openpyxl.worksheet._reader.WorksheetReader.bind_cells
File "openpyxl\\worksheet\\_reader.py", line 163, in parse
File "E:\Anoconda1\Lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
return cls(**attrib)
^^^^^^^^^^^^^
File "E:\Anoconda1\Lib\site-packages\openpyxl\worksheet\dimensions.py", line 281, in __init__
self.baseColWidth = baseColWidth
^^^^^^^^^^^^^^^^^
File "E:\Anoconda1\Lib\site-packages\openpyxl\descriptors\base.py", line 71, in __set__
value = _convert(self.expected_type, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Anoconda1\Lib\site-packages\openpyxl\descriptors\base.py", line 61, in _convert
raise TypeError('expected ' + str(expected_type))
TypeError: expected <class 'int'>
相关推荐
Python数据类型实战:从numeric、string到list/tuple的底层逻辑与避坑指南
Python数据类型是动态语言中隐式契约的核心载体,其设计融合了对象模型、内存行为与语义约束。理解int/float的精度差异、string的不可变性与Unicode本质、list与tuple在可变性及哈希性上的根本分野,是写出健壮代码的基础。这些类型并非语法符号,而是决定运行时行为、错误传播路径和性能特征的关键机制。在Web接口开发、数据清洗、爬虫解析等真实场景中,类型误用常表现为TypeError、UnicodeDecodeError或'not callable'等高频报错,根源多在于外部输入未清洗、内
Python数据类型底层原理与工程避坑指南
Python数据类型不是语法标签,而是运行时对象所遵循的行为协议,其底层由CPython的C结构体和内存布局决定。理解int的任意精度存储、float的IEEE 754精度限制、str的Unicode码点本质、list的动态数组扩容机制以及tuple的不可变性与可哈希特性,是写出健壮代码的基础。这些numeric和string等核心类型在交互中常引发隐式转换错误、编码异常与引用陷阱,尤其在数据清洗、API集成和微服务序列化等真实场景中高频暴露。掌握isinstance()的合理使用、类型提示(Type Hi
Python ValueError实战指南:从模糊报错到精准定位与防御
ValueError是Python中典型的语义型异常,它不反映类型错误,而是揭示输入值在业务逻辑或函数契约层面的不合法性。其本质是运行时数据质量预警,常见于int()、float()、datetime.strptime()、json.loads()等标准库调用中。相比TypeError,ValueError更难定位,因其根源常在数据源头而非代码本身——如空字符串、非法日期、含单位的价格文本或编码BOM头。掌握repr()调试、结构化捕获、预校验策略及SafeConverter封装,能显著提升数据管道健壮性。
Python比较运算符全解析:从基础语法到实战避坑指南
在编程中,比较运算符是构建程序逻辑判断的核心基础,它们通过返回布尔值(True或False)来决定代码的执行路径。其原理在于对操作数进行值或身份的对比,从而实现条件分支、循环控制等关键功能。这一基础概念的技术价值在于,它是实现任何复杂业务逻辑的基石,从简单的数据验证到复杂的算法决策都离不开它。在实际应用场景中,比较运算符广泛用于条件语句(if/elif/else)、循环控制(while)、数据过滤(列表推导式)以及排序算法等。理解比较运算符的深层机制,特别是区分值比较(==)与身份比较(is),以及掌握逻辑
Python机器学习数据读取:多源异构数据统一加载方案
在机器学习工程中,数据读取(Data Ingestion)是模型训练前的关键预处理环节,其本质是将CSV、JSON、数据库、Parquet等异构格式的原始字节流,经IO解析、类型转换、模式校验后,可靠转化为结构化DataFrame或张量。该过程涉及编码处理、内存管理、流式解析与Schema一致性保障等底层机制,直接影响特征复现性与线上稳定性。尤其在生产环境中,面对TB级日志、嵌套JSONL、时区敏感时间戳及动态类型漂移等挑战,仅依赖pandas.read_csv极易引发ValueError、UnicodeD


