[英]Python - Write JSON List to Mongo DB
我的腳本從 websocket 獲得響應,響應包含字典和列表,我需要列表。 然后我需要將列表保存到 mongodb。 我雖然我可以使用 dict(zip) 將列表轉換為 dict 但我收到此錯誤: TypeError: unhashable type: 'list'
代碼:
import json, time
import pandas as pd
import pymongo
from pymongo import MongoClient
from websocket import create_connection
if __name__ == '__main__':
db_name = 'KTDB'
db_collect = 'crypto_data'
client = MongoClient('localhost', 27017)
mydb = client[db_name]
ws = create_connection("wss://ws.kraken.com/")
ws.send(json.dumps({
"event": "subscribe",
"pair": ["BTC/USD"],
"subscription": {"name": "trade"}
}))
timeout = time.time() + 60*1
while time.time() < timeout:
js = json.loads(ws.recv())
if isinstance(js, list):
print(js)
jd = zip(range(len(js)), js)
#jd=dict(zip(js,range(len(js))))
mydb[db_collect].insert_many(jd)
#mydb[db_collect].insert_one({"test": 'check'})
ws回應:
[321, [['47426.40000', '0.01799527', '1613158549.286001', 's', 'l', '']], 'trade', 'XBT/USD']
MongoDB 本質上是一個鍵/值對存儲。 它可以存儲列表,但只能作為鍵/值對的值的一半。
因此,要實現存儲列表的目標,請創建一個鍵(dict)並將列表存儲為一個值。
if isinstance(js, list):
mydb[db_collect].insert_one({'my_list': js})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.