前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。
为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
使用 PyMySQL 连接和操作 MySQL 数据库是一个相对直接的过程。以下是一个详细的入门指南,涵盖如何安装 PyMySQL、建立连接、执行查询和关闭连接。
首先,您需要安装 PyMySQL 库。打开命令行(在 Windows 上是命令提示符或 PowerShell,在 macOS 或 Linux 上是终端),然后运行以下命令:
pip install pymysql
如果您使用的是 Python 3,请确保使用的是适用于 Python 3 的 PyMySQL 版本。
在您的 Python 脚本中,导入 PyMySQL 模块:
import pymysql
要连接到 MySQL 数据库,您需要提供一些连接信息,包括主机名、端口号(默认为 3306)、用户名、密码和数据库名。创建一个 pymysql.connect()
对象来建立连接:
connection = pymysql.connect(
host='localhost', # MySQL 服务器的主机名
port=3306, # MySQL 服务器的端口号,默认为 3306
user='your_username', # 数据库的用户名
password='your_password', # 数据库的密码
database='your_database' # 要连接的数据库名
)
一旦建立了连接,您就可以创建一个游标对象,该对象用于执行 SQL 语句:
with connection.cursor() as cursor:
# 执行 SQL 语句
cursor.execute("SELECT * FROM your_table")
使用游标对象执行查询,并获取结果:
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
完成所有操作后,关闭连接以确保不再占用资源:
connection.close()
将所有这些步骤放在一起,您将得到一个完整的连接和查询 MySQL 数据库的示例:
import pymysql
# 建立连接
connection = pymysql.connect(
host='localhost',
port=3306,
user='your_username',
password='your_password',
database='your_database'
)
try:
# 创建游标对象
with connection.cursor() as cursor:
# 执行查询
cursor.execute("SELECT * FROM your_table")
# 获取查询结果
result = cursor.fetchall()
for row in result:
print(row)
finally:
# 关闭连接
connection.close()
请确保将 'your_username'
、'your_password'
、'your_database'
和 'your_table'
替换为您的实际 MySQL 用户名、密码、数据库名和表名。
这就是使用 PyMySQL 连接和操作 MySQL 数据库的基本步骤。当然,还有更多高级功能,如执行插入、更新和删除操作,处理事务等,但基本的连接和查询是入门的第一步。
使用 PyMongo 连接和操作 MongoDB 数据库是一个相对直接的过程。以下是一个详细的入门指南,涵盖如何安装 PyMongo、建立连接、执行查询和关闭连接。
首先,您需要安装 PyMongo 库。打开命令行(在 Windows 上是命令提示符或 PowerShell,在 macOS 或 Linux 上是终端),然后运行以下命令:
pip install pymongo
如果您使用的是 Python 3,请确保使用的是适用于 Python 3 的 PyMongo 版本。
在您的 Python 脚本中,导入 PyMongo 模块:
from pymongo import MongoClient
要连接到 MongoDB 数据库,您需要提供 MongoDB 服务器的 URI。创建一个 MongoClient
对象来建立连接:
client = MongoClient('mongodb://localhost:27017/')
这里 'localhost:27017/'
是 MongoDB 服务器的 URI,localhost
是主机名,27017
是端口号。如果您有其他主机名或端口号,请相应地修改它们。
一旦建立了连接,您就可以选择要操作的数据库和集合:
db = client['your_database']
collection = db['your_collection']
使用集合来插入文档:
my_document = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
collection.insert_one(my_document)
使用集合来查询文档:
for doc in collection.find():
print(doc)
更新集合中的文档:
update_result = collection.update_one(
{"name": "John Doe"},
{"$set": {"age": 31}}
)
使用集合来删除文档:
delete_result = collection.delete_one({"name": "John Doe"})
完成所有操作后,关闭连接以确保不再占用资源:
client.close()
将所有这些步骤放在一起,您将得到一个完整的连接和操作 MongoDB 数据库的示例:
from pymongo import MongoClient
# 建立连接
client = MongoClient('mongodb://localhost:27017/')
# 选择数据库和集合
db = client['your_database']
collection = db['your_collection']
# 插入文档
my_document = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
collection.insert_one(my_document)
# 查询文档
for doc in collection.find():
print(doc)
# 更新文档
update_result = collection.update_one(
{"name": "John Doe"},
{"$set": {"age": 31}}
)
# 删除文档
delete_result = collection.delete_one({"name": "John Doe"})
# 关闭连接
client.close()
请确保将 'your_database'
、'your_collection'
和 'John Doe'
替换为您的实际 MongoDB 数据库名、集合名和文档中的实际值。
这就是使用 PyMongo 连接和操作 MongoDB 数据库的基本步骤。当然,还有更多高级功能,如处理批量操作、使用索引、事务等,但基本的连接和操作是入门的第一步。
根据 id 把 mysql 数据库 sthee_gd_question_bank 表 paper_question 的 answer 字段的值插入到 mongodb 数据库中的 demo 库 question 集合的 answer 字段中
import pymysql
from pymongo import MongoClient
from pymysql.cursors import DictCursor
class Execute:
def __init__(self, que_cms_db_config: dict, subject_codes: [str]):
self.que_cms_db_config = que_cms_db_config
self.subject_codes = subject_codes
def run(self):
# 连接到 MySQL 数据库
mysql_connection = pymysql.connect(**self.que_cms_db_config)
# 执行 MySQL 操作
with mysql_connection as connection, connection.cursor(DictCursor) as cursor:
# 在这里添加你的 MySQL 查询
cursor.execute('SELECT question_id, answer FROM paper_question')
mysql_list = cursor.fetchall()
# 添加调试打印语句
print("MySQL Set:", mysql_list)
# 连接到 MongoDB
client = MongoClient(_sthee_mongo_url)
db = client['demo'] # 这里硬编码了MongoDB的数据库名
collection = db['question'] # 选择集合
# 查询并保留指定字段
mongodb_list = [{"question_id": doc["_id"], "answer": doc.get("answer", "")} for doc in
collection.find()]
# 打印结果
print("MongoDB Set:", mongodb_list)
# 匹配比较并插入到 MongoDB
for mysql_answer in mysql_list:
for mongo_answer in mongodb_list:
mongo_que_answer = mongo_answer.get('answer')
mysql_que_answer = mysql_answer.get('answer')
if mysql_answer['question_id'] == mongo_answer['question_id'] and (
mongo_que_answer is None or mongo_que_answer == '' and (
mysql_que_answer is not None and mysql_que_answer != '')):
# 如果 MongoDB 中对应的键值对为空,插入 MySQL 中的值
collection.update_one({"_id": mongo_answer['question_id']},
{"$set": {"answer": mysql_answer['answer']}})
# 打印最终结果
updated_question_list = [{"question_id": doc["_id"], "answer": doc.get("answer", "")} for doc in
collection.find()]
print("Updated MongoDB Set:", updated_question_list)
if __name__ == '__main__':
_que_cms_db_config = {
'host': '127.0.0.1',
'user': 'root',
'password': 'root',
'database': 'sthee_gd_question_bank'
}
_sthee_mongo_url = 'mongodb://127.0.0.1:27017' # 这里可以是硬编码的MongoDB URI
_subject_codes = ['00324']
execute = Execute(
que_cms_db_config=_que_cms_db_config,
subject_codes=_subject_codes
)
execute.run()
这段代码的主要功能是连接到MySQL和MongoDB数据库,并将MySQL数据库中的数据更新到MongoDB数据库中。以下是代码的分点分析:
Execute
:
__init__
方法:接收MySQL数据库配置信息和学科代码列表作为参数,并将其存储为实例变量。run
方法:执行实际的连接和操作。run
方法详细分析:
pymysql.connect()
函数连接到MySQL数据库,使用 DictCursor
来返回字典类型的结果。paper_question
表中的 question_id
和 answer
字段,并将结果存储在 mysql_list
中。MongoClient
连接到MongoDB数据库,选择 demo
数据库和 question
集合。collection.find()
查询MongoDB集合中的数据,并将结果存储在 mongodb_list
中。mysql_list
和 mongodb_list
,比较每个元素,如果MongoDB中的对应记录的 answer
字段为空,则将MySQL中的 answer
值更新到MongoDB中。_sthee_mongo_url
和MongoDB数据库名 demo
,集合名 question
都是硬编码在代码中的,这种做法不够灵活,应该通过参数传递。print
函数来打印MySQL和MongoDB的数据集,以及更新后的MongoDB数据集,这样可以帮助开发者调试代码。collection.update_one()
方法来更新MongoDB中的记录,如果MongoDB中的 answer
字段为空,则将MySQL中的 answer
值更新到MongoDB中。pymysql
和 pymongo
库来连接和操作数据库,通过匹配 question_id
和比较 answer
字段的值来实现数据的更新。