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

Python-docx获取段落runs解包报错too many values to unpack解决

问题解答

首先明确python-docx的底层规则:单个Paragraph对象的runs属性固定返回一维列表,每个元素为对应格式片段的Run对象,不可能直接返回嵌套的两层列表。

你遇到的所有异常现象本质都是代码逻辑重复执行了两次操作:

  • 打印doc.paragraphs[i].runs得到两个列表,是两次打印分别输出了两个不同段落的runs属性
  • 取runs[0]得到两个结果,是两次取值分别取了两个不同段落runs的第一个元素
  • 解包报错是因为单个段落的runs列表长度远大于2,自然无法用两个变量完成解包

你后续定位到的if判断条件错误刚好对应这个根因:你的判断条件同时匹配到了两个符合要求的段落,导致对应逻辑执行了两次。

如果你的需求是只取第一个匹配到的段落的完整runs列表,修改逻辑即可:匹配到第一个符合条件的段落时,直接记录对应的runs列表,之后通过break终止遍历即可,无需继续匹配后续段落。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:21:04