You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytest中使用assert对比openpyxl读取的工作表列表值失败如何解决

问题根源

你断言失败的核心原因是类型不匹配:

  • 左侧output = list(sheet.values)得到的是Python原生列表类型,内部元素是元组、datetime对象、整数等真实数据
  • 右侧你加了双引号,把预期值写成了字符串类型,二者类型不同自然判定不等,报错里出现的\n是字符串里存储的列表打印格式换行符,和真实列表完全无关。

修正方案

  1. 首先确保你提前导入了datetime模块
  2. 去掉预期值的外层引号,直接写真实的Python列表作为预期结果即可。如果你的原表格第三行日期是2019年1月3日,你之前提取结果里的最后一行日期属于笔误,也需要对应修正:
import datetime

output = list(sheet.values)
expected = [
    ('Date',),
    (datetime.datetime(2019, 1, 1, 0, 0), 300),
    (datetime.datetime(2019, 1, 2, 0, 0), 450),
    (datetime.datetime(2019, 1, 3, 0, 0), 700)
]
assert output == expected

如果你的工作表提取结果最后一行确实是2019年1月1日,把expected最后一行的日期改回datetime.datetime(2019, 1, 1, 0, 0)即可。

内容的提问来源于stack exchange,提问作者zsh_18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:06:06