数据json转db格式

import pandas as pd
import sqlite3
import os
import json
from tqdm import tqdm

col_name_file = r"E:\code1\press_column_names.txt"
data_dir = r"E:\code1\Defect2.0"

# 读取列名
col_names = []
with open(col_name_file, 'r') as f:
    # Read the content of the file line by line
    for line in f.readlines():
        # Split the line into words
        col_names.append(line.strip())

print(col_names) 

# 建立数据库连接
conn = sqlite3.connect('data3.db')
t = []
i = 0
for root, dirs, files in os.walk(data_dir):
    for file in tqdm(files, ncols=80):
        if not file.endswith(".json"):
            continue

        with open(os.path.join(root, file), "r", encoding="utf-8") as f:
            jsonData = json.load(f)
            defectDir = os.path.dirname(root).split(os.path.sep)[-1]
            for item in jsonData:
                defectName_1 = item.get('defectName-1', "")
                defectName_2 = item.get('defectName-2', "")
                defectName_3 = item.get('defectName-3', "")
                if "异物" in item.get('problemCause-1', "") or "异物" in item.get('problemCause-2', ""):
                    continue
                if "锡" not in defectName_1 and "锡" not in defectName_2 and defectName_1 != "":
                    continue
                row = []
                for col_name in col_names:
                    row.append(item.get(col_name, ""))
                row.append(defectDir)

                t.append(row)
                i += 1
                if len(t) == 500000:
                    df = pd.DataFrame(t, columns=col_names + ["defectDir"])
                    df.to_sql("data_defect2", conn, if_exists="append")
                    t = []

df = pd.DataFrame(t, columns=col_names + ["defectDir"])
df.to_sql("data_defect2", conn, if_exists="append")
t = []
conn.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
jsonDBjsonDB是一个基于JSON格式的内存数据库.它具有以下特点:轻量级. 无守护进程,无需任何额外的安装和配置,你只需要import jsonDb即可使用,非常方便.NOSQL. 类似于mongoDb的非关系型数据库.内存数据库. 所有数据基于内存进行操作和访问,性能相对较高.目前版本的性能测试数据请 参考reference文档.任意迁移. 数据库可以完整导出为外部文件,并且可以从外部文件导入.基于此,数据库可以 进行任意的迁移,而无需做任何修改.灵活的数据类型. 一个数据集合(collection)中的数据,并不需要相同的格式.比如以下几种数据 可以同时存在于一个collection中: {'key1':1},{'key2':'value','pic':'value'},{'key3':'value'}JsonDB使用Python语言实现,是一个github开源项目,遵循MIT的LICENCE,基本上可以不受限制用于任何用途。该DB的接口大体模仿了mongoDB的风格,使用起来非常简单和顺手。概念说明:db: 即数据库. 创建一个jsonDb类的实例,即是创建了一个数据库.可以指定dbname和hash的长度.collection: 数据集合(表). 一个collection可以理解为数据库中的一个表. collection不需要 单独创建,当insert第一条数据,或者ensureKey时,系统会自动创建.data: 数据. collection中的一条数据,或者是一个数据的list. data必须是dict字典类型,是一个 key-value键值对.安装从源码安装,首先从github下载源码,jsonDb源码下载地址python setup.py install功能说明:创建数据库实例化一个JSONDB类实例,即创建一个数据库.我们重载了__str__方法,所以可以通过print直接查看数据库的统计信息.>>> from jsonDb.database import JSONDB >>> myDb = JSONDB('USER_DB') >>> print myDb ------ jdb statics ------ db_name: USER_DB mem_collection: 0 bytes mem_hash: 0 bytes collection_num: 0 **** collection statics ****更多详细使用说明请参考中文说明文档。 标签:jsonDB
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值