【发布时间】:2019-11-16 13:14:50
【问题描述】:
我正在尝试保存从 URL 中提取的 Json 数据,但我正在努力将其保存在 SQLite 数据库中。
json:
{"地址":"ff00000a70d57128","摄氏度":26.8125,"华氏度":80.2625}
我环顾四周并从以下方面获得灵感:
saving json data into sqlite Convert JSON to SQLite in Python - How to map json keys to database columns properly?
import threading
import json
import urllib.request
import sqlite3
def tempRequest():
# download raw json object
url = "http://10.0.0.111:8080/getdevice?device=type28_1"
data = urllib.request.urlopen(url).read().decode()
# parse json object
obj = json.loads(data)
print(obj)
tempRequest()
conn = sqlite3.connect('test.db')
c = conn.cursor()
def create_table():
c.execute("CREATE TABLE IF NOT EXISTS data(Celcius TEXT)")
def data_entry():
c.executemany('INSERT INTO data (Celcius) ''VALUES (:Celcius)
conn.commit()
c.close()
conn.close()
create_table()
data_entry()
当我运行它时我得到的是:
TypeError(f'JSON对象必须是str, bytes or bytearray, ' TypeError:JSON 对象必须是 str、bytes 或 bytearray,而不是省略号
我尝试过改变:
obj = json.loads(data)
到
obj = json.loads(str(data))
但我认为问题在于我如何处理数据库部分,任何建议将不胜感激。 谢谢!
【问题讨论】:
-
当你调试 python 脚本时,
pdb是你的朋友。将import pdb; pdb.set_trace()放置在您想要停止的任何位置,然后运行脚本。 pdb 解释器出现了,你可以像 python 解释器一样检查变量,例如data。