[解決済み】plotly: TypeError: 辞書の更新シーケンス要素#0をシーケンスに変換できない
質問
現在進めているプロジェクトで問題が発生したので、質問を残します。
現在のコンテンツはsensorで表形式で描画しています。しかし、数日前、ある作業をしているときに、直し方がわからなくなり、相談させていただきました。
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を使ってグラフを描画するコードは、ストリームからデータを受け取るときは問題ないのですが、テーブルプロットを描画するときは問題が発生します。
ここでグラフ化するにはどうしたらいいのでしょうか? とても気になります。教えてください。
どのように解決するのですか?
この例外は、イテラブルからディクトを作成しようとしていて、そのイテラブルの最初の要素がシーケンスでないことを意味します。この例外は ドキュメント の説明では、2つの方法でディクトを構築することができます。
- マッピングから、または
- キーと値のペアの反復処理可能なものから
では、例えば数字の集合から構成しようとすると。
>>> 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 コンストラクタに渡すと、この例外が発生します。
ここで実際に何をしようとしているのか、私にはわからないので 何 ディクショナリーを送信する必要があります。しかし、間違いなく dict を渡すべきです。
また、これを修正しても
sign_in
の呼び出しは、Plotly Cloudを使用しているようですね。しかし、同ページにあるように
Plotly Cloudでは、ストリーミングはサポートされなくなりました。
つまり、Plotly Cloudでストリーミングを使おうとしている場合、コードを修正してうまくいったとしても、おそらく失敗することになります。
TypeError
のように、無意味なものを渡すということです。
関連
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] TypeError: シーケンスアイテム 0: 予想される文字列、int が見つかりました。
-
[解決済み] 辞書から要素を削除する
-
[解決済み] 2つのリストを辞書に変換するにはどうしたらいいですか?
-
[解決済み] String表現のDictionaryをDictionaryに変換する?
-
[解決済み] Pythonで辞書の任意の要素にアクセスする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Python jiabaライブラリの使用方法について説明
-
Pythonによるjieba分割ライブラリ
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?