python - 脚本错误:ValueError:解包的值太多
问题描述
我希望下面的 python 脚本在执行到我的 InfluxDB 时发送数据。
但是当我执行脚本时,我收到一条错误消息“ValueError:解包的值太多”。我究竟做错了什么?
if __name__ == "__main__":
import time
#foo = kamstrup()
foo = kamstrup(serial_port="/dev/ttyAMA0", baud_rate=1200)
for i in kamstrup_MC601_var:
x,u = foo.readvar(i)
print("%-25s" % kamstrup_MC601_var[i], x, u)
import requests
url_string = 'http://192.168.0.11:8086/write?db=test_kamstrup'
data_string = 'kamstrup_script,host=server01,region=us-west value={' + kamstrup_MC601_var[i], x, u + '}'
r = requests.post(url_string, data=data_string)
解决方案
错误可能从这里上升;
x,u = foo.readvar(i)
您没有提供足够的分配器来分配数据
例如:
>>> a=[1,2,3]
>>> x,y = a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
您可以通过为分配提供确切数量的变量或使用以下方法来解决此问题:
x, *u = foo.readvar(i)
这将获得第一个并分配给x
,其余的将u
作为列表分配给。
推荐阅读
- asp.net-core - 如果我想要一个单独的 Web api,但仍然在服务器端运行,然后在客户端运行,该选择哪个项目模板?
- excel - 如何有效地编写代码以访问 VBA 中的全局命名范围
- vega - 修改规范中的 Vega 工具提示以显示特定字段
- c# - FakeItEasy 在构造函数中使用带有参数的自定义属性伪造抽象类抛出 ArgumentException
- python-3.x - Python:根据条件在语句(类对象)周围打印括号
- c# - 如何验证一个值是否实际在发布请求正文中发送?
- javascript - 如何根据屏幕宽度定义变量?
- javascript - $emit 和 $on 奇怪的行为 - Vue2
- haskell - 如何修复:ghci 中字符 '"' 处的字符串/字符文字中的词法错误
- flutter - 从 DropdownItems 中选择值后,DropdownButton 值未更新。如何使用 selectedValue 更新默认值?