Python JSON数据导入

标签 python json database sqlite python-3.x

我正在尝试将数据从 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()

最佳答案

正确的循环形式应该是:

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()

关于Python JSON数据导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34843689/

相关文章:

Python如何在字符串中每次有一大块数字时分割列

python - 如何从屏幕pygame中完全删除 Sprite

python - 比较数组的所有相邻元素

javascript - require.js POST 请求 spotify web api 返回 "Error parsing json"

javascript - PHP 对 JSON 请求没有响应

database - Odoo 数据库在端口更改后不加载

python - 无法在 matplotlib 中绘制条形图

json - 在 ASP.NET Core Web API 中从存储过程接受嵌套 JSON 时出现错误?

database - 在ACID中,C是DBMS实现的责任吗?

php - 使用 php 更新数据库中的值