[英]Python JSON data importing
我正在嘗試將數據從json文件導入sqlite,但出現了一些錯誤,我首先認為問題出在路徑上,我以多種方式對其進行了更改,但是...沒有結果,它給了我這個錯誤:
Traceback (most recent call last):
File "C:/Users/Taner/PycharmProjects/untitled/MyProgram.py", line 13, in <module>
json_object = json.loads(dummy_json)
File "C:\Users\Taner\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
這是我的代碼:
import json
import bz2
import sqlite3
fpath = "C:\\Users\\Taner\\Downloads\\RC_2012-12.bz2"
databasepath = "C:\\Users\\Taner\\Desktop\\Seagate\\reddit"
conn = sqlite3.connect(databasepath)
curs = conn.cursor()
with bz2.BZ2File(fpath) as file:
for line in file:
dummy_json = line
json_object = json.loads(dummy_json)
po = json.loads(line.decode('utf8'))
curs.execute("INSERT INTO Reddit VALUES (?,?,?)", (po['id'], po['subreddit_id'], po['subreddit'],))
conn.commit()
您已經在這里有了答案,因為在錯誤之后的行中,您已正確解碼了utf-8中的行,然后再將其傳遞給json.loads。 因此,帶有錯誤的行是完全沒有意義的,您應該將其刪除。
循環的正確形式應為:
with bz2.BZ2File(fpath) as file:
for line in file:
po = json.loads(json.loads(line.decode('utf8')))
curs.execute("INSERT INTO Reddit VALUES (?,?,?)", (po['id'], po['subreddit_id'], po['subreddit'],))
conn.commit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.