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

Python split()解包报错:ValueError: not enough values to unpack

问题原因

你踩了个容易忽略的坑:原字符串里的RegState: Registered, home network这一行包含逗号,你先把换行符替换成逗号再用逗号分割,会把Registered, home network拆成两个单独元素——Registered和home network。后者home network里没有: 或:,执行split(': ')只能得到1个元素,自然没法解包成两个变量,于是抛出not enough values to unpack错误。

解决方法

别绕弯子用逗号替换换行,直接按原字符串的换行符\n分割,这样每个元素都是完整的key: value对,包括带逗号的value:

workingResult = "SIMState: READY\nSIMMCC: 262\nSIMMNC: 01\nRegState: Registered, home network\nSigQuality: Good\nSigQualitydBm: -72\nAccessTec: 4G\nLastUpdate: 19.02.20_12:25:37"

# 直接按换行分割,得到每个完整的键值对
strip2 = workingResult.split('\n')
finalDict = {}
for item in strip2:
    print(f'{type(item)}, {item}')
    key, value = item.split(': ', 1)  # 加maxsplit=1更稳妥,防止value里也出现": "
    print(key, value)
    finalDict[key] = value

print(finalDict)
补充说明

给split(': ', 1)加第二个参数1(最大分割次数),是为了防止万一某个value里也出现: 的情况,确保只分割第一个: ,后面的内容全部保留为value。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:14:56