python - plotly:TypeError:无法将字典更新序列元素#0转换为序列
问题描述
我目前正在进行的项目有问题,所以我要提出一个问题。
当前内容由传感器以表格形式绘制。但是几天前,当我在做某事时,我不知道如何解决它,所以我寻求帮助。
import plotly.plotly as py
import plotly.figure_factory as ff
from bluepy import sensortag
import sys
import time
import datetime
import numpy as np
py.sign_in("smrlswja9963","94b4enXKYqyOu4iuPDGG")
time.sleep(1.0)
tag = sensortag.SensorTag('24:71:89:CC:53:00')
tag.IRtemperature.enable()
tag.humidity.enable()
stream1=py.Stream('liz9v2c0or')
stream1.open()
i=0
while True:
now = datetime.datetime.now()
dateTime = now.strftime("%Y-%m-%d %H:%M:%S")
A = tag.IRtemperature.read()
B = tag.humidity.read()
tempt=A[0]
humty=B[0]
stream1.write({dateTime,tempt,humty})
i+=1
tag.waitForNotifications(3.0)
table = go.Table(
header=dict(values=["dateTime","tempt","humty"]),
cells=dict(values=[[dateTime],[tempt],[humty]]),
stream = dict(token='liz9v2c0or',))
data=[table]
py.iplot(table, filename="latex table")
执行以下代码后,出现以下错误。
Traceback (most recent call last):
File "/home/pi/do it.py", line 27, in <module>
stream1.write({dateTime,tempt,humty})
File "/usr/local/lib/python2.7/dist-packages/plotly/plotly/plotly.py", line 632, in write
stream_object.update(trace)
TypeError: cannot convert dictionary update sequence element #0 to a sequence
在这种情况下,我使用 plolty 绘制图形的代码在从流接收数据时没有问题,但是当我绘制表格图时。
我如何在这里绘制图表?我真的很好奇。请告诉我。
解决方案
此异常意味着您正在尝试从可迭代对象构造字典,并且可迭代对象的第一个元素不是序列。正如文档所解释的,您可以通过两种方式构造 dict:
- 从映射,或
- 从一个可迭代的键值对
因此,如果您尝试从一组数字中构造它:
>>> dict({1, 2, 3})
TypeError: cannot convert dictionary update sequence element #0 to a sequence
…它试图将第一个元素用作键值对——即 2 个值的序列——但无法将数字解释1
为键值对,因此它引发了一个TypeError
.
同时,我对 Plotly 流媒体一无所知,但这个页面上有什么,但这段代码显然是错误的:
stream1.write({dateTime,tempt,humty})
我无法想象你为什么要流式传输一组。
另外,这些示例都有一个 dict,或者一个字符串,它是一个 dict 的 JSON 编码。
因此,很明显,该 API 期望您将其传递给 dict 或您可以提供给 dict 构造函数的东西。但是你把它传给了一组。因此,它将该集合提供给 dict 构造函数,并获取此异常。
因为我不知道你在这里实际上想做什么,所以我不知道你应该在这里发送什么字典。但你绝对应该传递一个字典。
此外,即使你解决了这个问题,根据sign_in
调用,看起来你正在使用 Plotly Cloud。但是,正如同一页所说:
Plotly Cloud 不再支持流式传输。
因此,如果您尝试将流与 Plotly Cloud 一起使用,那么,即使您修复了代码以使其有意义,它也可能仍然会失败,只是 Plotly 出现错误而不是TypeError
胡说八道。
推荐阅读
- excel - 电源查询 - 查找两个表中不匹配的内容
- c# - .net 核心是否支持代码合同?
- nginx - Celery 和 Nginx 的 CPU 数量
- kubernetes - Kubeadm Init 在启动控制平面时失败(kubelet 未运行或健康)
- javascript - 设置状态 B 的状态时,React 钩子获取状态 A 的先前状态
- angularjs - 无法读取未定义的属性“4”
- kubernetes - 如何将所有资源复制到新的命名空间?
- r - 添加新列,其值取决于其他列
- flutter - 从字符串中删除邮政编码 (Flutter/Dart)
- javascript - 无法成功嵌入/显示 POWR.io 评论