python valueError:too many values unpack,有人知道么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python valueError:too many values unpack,有人知道么?相关的知识,希望对你有一定的参考价值。

def getOSDParam(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((HOST, PORT)) #get display osd of time bytes = struct.pack("<III", 0xAFFFFFFA, 12, 0x84) s.settimeout(0)#设置socket超时为0s,(初始测试)即出错,而且except捕获不到异常 s.send(bytes) data_osd = s.recv(1024) s.close() print "len(data_osd)",len(data_osd) if len(data_osd)<= 0: resOSD = -1 return 0,0,0,0,0,0,resOSD else: #flags2, length, command,displayTime,colorOfOSD,lastFrame,extraOSD,displayOSDName= struct.unpack("<IIIBBBBB", data_osd)#已注释 .... except: return 0,0,0,0,0,0,-2def getImageParam(): brightness,contrast,saturation,frequency, width, height, radio_w \ , radio_h,overscan,ColumnOfDisplay,RowOfDisplay,SeriesOfDisplay,objValidRAF,resBase = getBaseParam() (这里面有设置超时5s) displayTime,colorOfOSD,lastFrame,extraOSD,displayOSDName,resOSD = getOSDParam()(运行到这里出错

) ...运行脚本执行到getImageParam函数时,报错
程序里已经有except捕获,但是就是捕获不到异常,求救。

问题不出在getOSDParam函数里面。return 0,0,0,0,0,0,-2的返回值长度是7,而你代码中的displayTime,colorOfOSD,lastFrame,extraOSD,displayOSDName,resOSD = getOSDParam()前面明明只有6个变量。 参考技术A

oo many values to unpack

这种错误是指一个tuple值赋给一个tuple变量时,变量个数不够造成的。如:
a, b = (1, 2, 3)

for example: if ditc_a is dict, following code will get this error

for key, value in ditc_a:

各种google后发现了原因,是在http://stackoverflow.com/questions/20250901/python-sql-alchemy-migrate-valueerror-too-many-values-to-unpack-when-migrat找到的答案,非常感谢stackoverflow的大神,

就是在modle.py中定义数据表的时候使用了Boolean,当我把db.Boolean都换成了db.SmallInteger就解决了问题,非常感谢啊。。。另外,发现在定义的时候Boolean是不分大小写的,所以记得完全更换,就不会影响迁移了,太开心啦~~~

boolean对应的是tinyint,smallinteger对应的是smallint,,,当迁移之后,mysql中的tinyint不会转换为smallint,但是不会影响使用。

使用的sqlalchemy是0.7.9,sqlalchemy-migrate是0.7.2

最后附一个学习sqlalchemy的地址,非常好:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database

收获不会与付出成反比 by juandx

Correct:

for key, value in ditc_a.items():

ValueError: too many values to unpack

Error msg:

执行: python manage,py makemigrations 报错:
Value: too many values to unpack

问题:

  django第一次数据库迁移之后, apps中的model位置改变了, 导致之前生成的迁移文件检测不到原来的位置

解决:

  删除所有的迁移文件重新迁移, 或者将之前的迁移文件的路径修改正确

  


以上是关于python valueError:too many values unpack,有人知道么?的主要内容,如果未能解决你的问题,请参考以下文章

ValueError: too many values to unpack tensorflow

ValueError: too many values to unpack

Sklearn 管道抛出 ValueError: too many values to unpack (expected 2)

ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64‘).

ValueError: Input contains NaN, infinity or a value too large for dtype(‘float64‘).

使用 scipy.signal.lfilter 时,实现 Butterworth 带通滤波器遇到:“ValueError: object of too small depth for desired