建表+數(shù)據(jù)庫插入
#coding=utf-8
# 達達
# 2021-6-11
# 導入庫
import pymysql
# 打開數(shù)據(jù)庫連接
# localhost:主機ip
# 數(shù)據(jù)庫賬號:
# 數(shù)據(jù)庫密碼:
# 數(shù)據(jù)庫名稱:
db = pymysql.connect("主機ip", "數(shù)據(jù)庫賬號", "數(shù)據(jù)庫密碼", "數(shù)據(jù)庫", charset='utf8' )
# 使用cursor()方法獲取操作游標
cursor = db.cursor()
# 創(chuàng)建數(shù)據(jù)表SQL語句
# 創(chuàng)新表 表名
# 設置id,為主鍵,自增
# 設置title 為Text類型非空
# 設置href 為 Text類型非空
# 設置time 為char類型,長度最大30
# 后續(xù)類似
try:
sql = "CREATE TABLE `數(shù)據(jù)庫名`.`表名` ( `id` INT NOT NULL AUTO_INCREMENT , `title` TEXT NOT NULL , `href` TEXT NOT NULL , `time` VARCHAR(30) NOT NULL , `source` VARCHAR(30) NOT NULL , `article` TEXT NOT NULL , `article_list` TEXT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;"
cursor.execute(sql)
except:
print("數(shù)據(jù)庫已創(chuàng)建")
# 導入數(shù)據(jù)
import pandas as pd
from tqdm import tqdm
# 導入json數(shù)據(jù)
data = pd.read_json("./data2/comp_indus_sum.json",encoding="utf-8")
for i in tqdm(range(len(data))):
#------------------------------
# 看json的基礎信息
# print(data.iloc[0])
# _id {'$oid': '5f991a055e29b2de980dad25'}
# article 10月28日,一場中國投資界頂級盛會啟幕!百位基金行業(yè)大佬、研究領域大咖、上市公司高管齊聚深...
# article_list [10月28日,一場中國投資界頂級盛會啟幕!百位基金行業(yè)大佬、研究領域大咖、上市公司高管齊聚...
#----------------
data_sample = data.iloc[i]
article = data_sample['article']
href = data_sample['href']
time = data_sample['time']
title = data_sample['title']
article_list = str(data_sample['article_list'])
source = str(data_sample['source'])
if article=="":
continue
# SQL 插入語句
sql1 = "INSERT INTO `表名`(`id`,`title`, `href`, `time`, `source`, `article`, `article_list`) VALUES (NULL,'{0}','{1}','{2}','{3}','{4}','{5}')".format(title.replace('''"''',r'''\"''').replace("'",r"\'"),href,time,source,article.replace('''"''',r'''\"''').replace("'",r"\'"),article_list.replace('''"''',r'''\"''').replace("'",r"\'"))
# 執(zhí)行sql語句
try:
cursor.execute(sql1)
except:
print(i)
# 提交到數(shù)據(jù)庫執(zhí)行
db.commit()
# 關閉數(shù)據(jù)庫連接
db.close()