值错误:要解包的值太多(应为2)

2024-04-19 16:12:22 发布

您现在位置:Python中文网/ 问答频道 /正文

line="101 : johnny 'wave-boy' jones:usa:8.32:fish:21"
s={}
(identity,name,country,average,boardtype,age)=line.split()
print(identity)

我的输出是:

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    (identity,name,country,average,boardtype,age)=line.split()
ValueError: need more than 5 values to unpack

Tags: nameagelinewavecountryidentitysplitboy
3条回答

拆分line时,会得到一个包含5个值的列表,并尝试将其分配给6个值

>>> line="101 : johnny 'wave-boy' jones:usa:8.32:fish:21"
>>> line.split()
['101', ':', 'johnny', "'wave-boy'", 'jones:usa:8.32:fish:21']
>>> (a,b,c,d,e) = line.split()
>>> (a,b,c,d,e,f) = line.split()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 5 values to unpack

line.split()返回['101', ':', 'johnny', "'wave-boy'", 'jones:usa:8.32:fish:21']

它的长度为5,而您将它a解压为一个包含6个元素的元组。

当您在不传递参数的情况下拆分字符串时,该方法的行为是string.split(' ')

我认为你想要达到的目标可以通过line.split(':')来实现

您将在空白字符处拆分行。我想你想把它分给科隆,你可以通过

identity, name, country, average, boardtype, age = line.split(':')

相关问题 更多 >