python将mongodb数据copy到mysql

本文介绍如何使用Python脚本将Scrapy爬取并存储在MongoDB中的数据迁移到Django项目的MySQL数据库。通过编写的小脚本,实现了数据的无缝转移。
摘要由CSDN通过智能技术生成

因为平时用scrapy爬的数据都是写在mongodb,而django用的是mysql, 需要将mongodb数据copy到mysql,就写了下面一个小脚本.代码如下:

import pymysql
import pymongo
'''将数据由mongo 导入 mysql'''

class PyMongo(object):
	'''创建mongodb类,提供查询和插入工作'''
	
	def __init__(self, database):
		'''注册登陆mongodb'''
		client = pymongo.MongoClient(host='localhost', port=27017)
		self.db = client[database]

	def getlist(self,collection,title):
		'''从mongodb中查询提取数据,返回数据列表'''
		coll = self.db[collection]
		result = coll.find({'title':title},{'name':1,'src':1,})#.distinct('src')#'picstore':1})
		return result

	def insert(self, collection,**kw):
		'''向mongodbcollection里插入数据'''
		coll = self.db[collection]

		data1 = {
			'id': '20170101',
			'name': 'Jordan',
			'age': 20,
			'gender': 'male'
Python中,你可以使用各种库来连接并导出数据库的数据,这取决于你使用的数据库类型,如MySQL、PostgreSQL、SQLite等。以下是几个常用的库: 1. **对于SQL数据库**(如MySQL, PostgreSQL): - 使用`pymysql`或`psycopg2`库(针对PostgreSQL)连接MySQL: ```python import pymysql connection = pymysql.connect(host='localhost', user='username', password='password', db='database_name') with connection.cursor() as cursor: query = "SELECT * FROM table_name" cursor.execute(query) data = cursor.fetchall() # 将数据保存到文件 with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerows(data) ``` - 对于PostgreSQL,可以使用`psycopg2`库: ```python import psycopg2 conn = psycopg2.connect(database="your_database", user="your_user", password="your_password", host="your_host", port="your_port") cur = conn.cursor() cur.execute("COPY (SELECT * FROM your_table) TO STDOUT WITH CSV HEADER") ``` 2. **对于SQLite**: - 使用`sqlite3`内置模块: ```python import sqlite3 conn = sqlite3.connect('your_database.db') cursor = conn.cursor() cursor.execute("SELECT * FROM table_name") rows = cursor.fetchall() with open('output.txt', 'w', newline='') as file: for row in rows: file.write(','.join(str(r) for r in row) + '\n') ``` 3. **对于NoSQL数据库(如MongoDB)**: - 使用`pymongo`库: ```python from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client['your_database'] collection = db['your_collection'] documents = collection.find() with open('output.json', 'w', indent=4) as f: json.dump(list(documents), f) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值