首页 > 数据库 >python数据持久化(mysql+CSV+mongodb)

python数据持久化(mysql+CSV+mongodb)

时间:2023-11-18 19:33:28浏览次数:56  
标签:__ 创建 python mongodb self db mysql csv

1.创建数据库
create database mydb charset utf8;
use mydb;
create table mydb(name varchar(100),star varchar(200),time varchar(100)) charset=utf8;

2.使用pymysql模块在mytab表中插入一条表记录
import pymysql

#(1)创建数据库连接对象
db = pymysql.connect('localhost', 'root', '123456', 'mydb', charset='utf8')
#(2)创建游标对象
cur = db.cursor()
#(3)执行SQL命令
ins = 'insert into mytab values(%s,%s,%s)'
li = ['大话西游', '周星驰', '1994-01-01']
cur.execute(ins, li)
#(4)提交到数据库执行
db.commit()
#(5)关闭游标
cur.close()
#(6)断开数据库连接
db.close()

###数据库中select * from mytab;可以查看到插入的数据。应用:结合4可以将猫眼抓取数据存储到mysql

3.csv模块(execl可以直接打开)
  问题1:windows中csv文件会多出空行,使用newline参数解决
  问题2:gbk编码识别不了某些特殊字符,手动指定字符编码

import csv
with open('test.csv', 'w', newline='', encoding='utf-8') as f:
# 初始化csv文件的写入对象
writer = csv.writer(f)
writer.writerow(['大话西游', '周星驰', '1994-01-01'])

#CSV在打开一次,在init时即可,

class MaoyanSpider:
def __init__(self):
"""定义常用变量"""
# 打开文件和创建CSV文件写入对象只需要执行一次
self.f = open('maoyan.csv', 'w')
self.writer = csv.writer(self.f)
def get_html(self, url):
"""获取响应内容"""
def parse_html(self, html):
""""解析的功能函数,解析提取数据"""
def save_html(self, r_list):
"""具体数据处理的函数"""
for r in r_list:
li = [
r[0].strip(),
r[1].strip(),
r[2].strip()
]
self.write.writerow(li)
print(li)
def run(self):
"""程序入口函数"""
#所有执行完,关闭csv文件
if __name__ == '__main__':
spider = MaoyanSpider()
spider.run()

3.mongodb非关系型数据库:键值对方式存储(redis也是非关系型,键值对)
  (1)python基础 :基于磁盘存储,redis基于内存存储,值为json文档

  (2)Python与mongodb交互
安装pymongo模块:sudo pip3 install pymongo
pymongo模块使用流程:
创建连接对象:conn = pymongo.MongoClient('localhost', 27017)
创建哭对象:db = conn['库名']
创建集合对象: myset = db['集合名']
在集合中插入文档: myset.inset_one({})
注意:mongodb无需提前建库和建集合,自动创建对应集合和文档
mongodb无需手动提交到数据库执行

   (3)python与mongodb交互
库名:testdb
集合名testtest
文档:{'name':'tome','name':'john'}
例子:
import pmongo
# a.创建数据库连接对象
conn = pymongo.MongoClient('localhost', 27017)
# b.创建库对象
db = conn['testdb']
# c.创建集合对象
myset = db['testtest']
# d.插入文档
myset.inset_one({'name':'Tome','tools':'kills'})

标签:__,创建,python,mongodb,self,db,mysql,csv
From: https://www.cnblogs.com/huchao12/p/17840976.html

相关文章

  • 爬取python网站下载地址,并下载最新文件
    1.下载https://www.python.org/ftp/python/最新版本python文件  一个下载网站,查看最新的,然后下载对应版本文件(如,列出python版本,并下载https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz)。 代码如下:importrequestsfromlxmlimportetreeimporttimeimportr......
  • 25届实习秋招-Java面试-MySQL数据库面试题整理-牛客网近一年
    MySQL概述:关系型数据和非关系型数据库的区别,有哪些应用场景有哪些非关系的单表操作:三种SQL语言类型,MySql本身常用命令DDL-数据定义语句:表的常用操作truncate/delete--drop操作的区别varchar最大字节数DMLUpdate语句的sql执行流程对行数据的修改是......
  • python的SSH/ftp操作
    1.python连接ssh并执行命令//安装paramiko模块:pipinstallparamiko(1)执行单条命令importparamikossh=paramiko.SSHClient()#创建一个ssh的客户端,用来连接服务器know_host=paramiko.AutoAddPolicy()#创建一个ssh的白名单ssh.set_missing_host_key_policy(know_hos......
  • python使用wandb login报错
    python使用wandblogin报错问题描述wandb是一个可视化在pipinstallwandb后使用importwandb或者运行命令wandblogin产生如下报错:cannotimportname'COMMON_SAFE_ASCII_CHARACTERS'解决方法报错可能是由于charset_normalizer模块的版本问题引起的。卸载重装:pipuninst......
  • Python 潮流周刊#27:应该如何处理程序的错误?
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。本周刊开源,欢迎投稿。另有电报频道作为副刊,补充发布更加丰富的资讯。......
  • Python十道基础编程题
    1.输入日期,判断这一天是这一年的第几天importdatetimedefday_of_year():year=eval(input('请输入年份:'))month=eval(input('请输入月份:'))day=eval(input('请输入天:'))date1=datetime.date(year,month,day)date2=datetime.date......
  • Python 中的经典类新式类
    要知道经典类和新式类的区别,首先要掌握类的继承类的继承的一个优点就是减少代码冗余广度优先和深度优先,这主要是在多类继承的时候会使用到经典类和新式类的主要区别就是类的继承的方式经典类遵循深度优先的规则,新式类遵循广度优先的规则。至于什么是深度优先什么是广度优先,可......
  • Python中四大高阶函数,你认识几个
    1.匿名函数defname(a,b):returna+bf=lambdaa,b:a+bprint(f(15,15))2.map函数第一个参数接收一个函数名,第二个参数接收一个可迭代对象,利用map,lambda表达式将所有偶数元素加100deffun(a,b):returna+bret=map(fun,[1,2,3],[4,5,6])print(list(ret))3.sor......
  • python模拟题二
    1. (10.)   实现以下功能:从键盘输入4个数字,各数字采用空格分隔,对应变量x0,y0,xl,y1.计算两点(x0,y0)和(x1,y1)之间的距离,屏幕输出这个距离,例如:键盘输入:0135   屏幕输出:5.00  提示:importmathnums=input("用空格分隔的四个数字:")#利用nums.spl......
  • Python字典六种类型概述
    1.引言看到这个标题,你可能会觉得奇怪,事实上在Python的标准库中共有6种字典类型!在某些情形下,你可能会觉得标准的Python字典dict,并不能完全符合你的需求。在本文中,我们将讨论Python中其他5个鲜为人知的词典及其特性。闲话少说,我们直接开始吧!2.字典的定义在Python中,Dictionary(dict)是......