我有一個名為的字典串列xyz
[
{
"x": -11.370502,
"y": -8.545141,
"z": -0.083815
},
{
"x": -11.36693,
"y": -8.403456,
"z": -0.081571
},
{
"x": -11.353832,
"y": -7.935539,
"z": -0.074171
},
{
"x": -11.315733,
"y": -7.325937,
"z": -0.06436599999999999
},
{
"x": -11.266916,
"y": -6.716335,
"z": -0.054387000000000005
},
{
"x": -11.185953,
"y": -6.106733,
"z": -0.043016
},
{
"x": -11.094276,
"y": -5.497132,
"z": -0.030890999999999995
},
{
"x": -10.982357,
"y": -4.88753,
"z": -0.018994999999999998
}
]
我把這個寫到我的sqlite3-database 使用
sqlite3.Binary(pickle.dumps(border, protocol=-1))
現在我想從資料庫中讀回它。
xyz = bytes(sqlite3_xyz)
下一步是什么?
uj5u.com熱心網友回復:
你只需要顛倒這些步驟。
測驗.py:
import pickle
import sqlite3
XYZ = [
{"x": -11.370502, "y": -8.545141, "z": -0.083815},
{"x": -11.36693, "y": -8.403456, "z": -0.081571},
{"x": -11.353832, "y": -7.935539, "z": -0.074171},
{"x": -11.315733, "y": -7.325937, "z": -0.06436599999999999},
{"x": -11.266916, "y": -6.716335, "z": -0.054387000000000005},
{"x": -11.185953, "y": -6.106733, "z": -0.043016},
{"x": -11.094276, "y": -5.497132, "z": -0.030890999999999995},
{"x": -10.982357, "y": -4.88753, "z": -0.018994999999999998},
]
def main():
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t1 (data BLOB)")
data = sqlite3.Binary(pickle.dumps(XYZ))
with con:
cur.execute("INSERT INTO t1 VALUES (?)", (data,))
for row in cur.execute("SELECT data FROM t1"):
data, *_ = row
print(pickle.loads(data)[0])
con.close()
if __name__ == "__main__":
main()
測驗:
$ python test.py
{'x': -11.370502, 'y': -8.545141, 'z': -0.083815}
從未知來源提取資料的安全原則在這里仍然適用:
警告
pickle模塊不安全。_ 只解開您信任的資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485334.html
上一篇:根據其他列填充列-SQLITE
下一篇:如何從資料庫中的URL加載影像
