使用Python将MongoDB中的数据转存到MySQL中的一次尝试

打算把整个项目上传到 github 上,但是数据啥的都保存在 MongoDB 中,因为没找到把 MongoDB 导出到 sql 脚本的方式,遂决定将数据从 Mongo 中提取出来,再放到 MySQL 中,这样就可以导出 sql 脚本文件,或者是 Excel 文件啦!

#coding=utf-8
import pymongo
import MySQLdb

#--------------------------数据库启动函数------------------------------
def start_MySQL():
    conn = MySQLdb.connect(
            host='localhost',
            port = ???,
            user='???',
            passwd='???',
            db ='temple_comment_table',
            charset='gbk')
    cur = conn.cursor()
    myConn_list = [conn, cur]
    return myConn_list
#---------------------------------------------------------------------

#--------------------------关闭数据库--------------------------------
def close_MySQL(cur,conn):
    cur.close()
    conn.commit()
    conn.close()
#------------------------------------------------------------------

if __name__ == "__main__":
    client = pymongo.MongoClient('localhost', 27017)
    TempleSpider = client['TempleSpider']
    temple_comment_collect = TempleSpider['temple_comment_collect']

    myConn_list = start_MySQL()
    cur = myConn_list[1]
    conn = myConn_list[0]

    sqli = "insert into temple_comment values(%s,%s,%s)"

    for temple in temple_comment_collect.find():
        try:
            cur.execute(sqli, (temple['data_source'],
                               temple['temple_name'],
                               temple['temple_comment']))

            print(temple)
        except:
            pass

    close_MySQL(cur, conn)

MongoDB
这里写图片描述

MySQL
这里写图片描述

因为字符编码的缘故,莫名其妙的丢了 1k+ 的数据 :(

这里写图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: # 以下是python代码:import pymongo import pandas as pd from flask import Flask, render_template# 连接 MongoDB client = pymongo.MongoClient("mongodb://localhost:27017/") db = client["myDB"]# 读取数据 data = pd.DataFrame(list(db.myCollection.find()))# Flask 应用 app = Flask(__name__)# 路由 @app.route('/') def index(): return render_template('index.html', data=data.to_html())# 启动服务 if __name__ == '__main__': app.run() ### 回答2: 要将MongoDB数据可视化到web页面,可以使用Python的Flask框架和MongoDBPython驱动程序PyMongo。 首先,需要安装Flask和PyMongo: ``` pip install flask pip install pymongo ``` 接下来,创建一个Flask应用并连接MongoDB: ```python from flask import Flask, render_template from pymongo import MongoClient app = Flask(__name__) # 连接MongoDB client = MongoClient('localhost', 27017) db = client['your_database'] collection = db['your_collection'] @app.route('/') def index(): # 从MongoDB获取数据 data = collection.find() # 渲染模板,并传递数据给模板 return render_template('index.html', data=data) if __name__ == '__main__': app.run() ``` 上面的代码创建了一个Flask应用,并在根路由上渲染了一个名为index.html的模板。在这个路由处理函数,通过`collection.find()`从MongoDB获取了所有数据,并将数据传递给模板。 接下来,创建一个名为index.html的模板文件,并使用模板引擎(如Jinja2)来渲染数据: ```html <!DOCTYPE html> <html> <head> <title>MongoDB数据可视化</title> </head> <body> <table> <thead> <tr> <th>字段1</th> <th>字段2</th> <!-- 添加更多字段 --> </tr> </thead> <tbody> {% for record in data %} <tr> <td>{{ record.field1 }}</td> <td>{{ record.field2 }}</td> <!-- 添加更多字段 --> </tr> {% endfor %} </tbody> </table> </body> </html> ``` 在模板使用了`{% for %}`语句来遍历数据并输出表格的每一行。你需要根据实际的数据结构来定义表格的每个字段。 最后,运行Flask应用,打开浏览器访问http://localhost:5000,就可以看到MongoDB数据被可视化到网页了。注意要将`your_database`和`your_collection`替换为实际的数据库和集合名称。 ### 回答3: 要将MongoDB数据可视化到web页面,可以使用以下Python代码: ```python from flask import Flask, render_template from pymongo import MongoClient app = Flask(__name__) # 连接MongoDB数据库 client = MongoClient('mongodb://localhost:27017/') db = client['your_database_name'] collection = db['your_collection_name'] @app.route('/') def index(): # 从MongoDB获取数据 data = collection.find() # 将数据传递给HTML模板,并在web页面上渲染 return render_template('index.html', data=data) if __name__ == '__main__': app.run() ``` 上述代码,首先我们导入了必要的库,包括Flask框架和PyMongo用于连接MongoDB的驱动程序。 然后,我们创建一个Flask应用程序,并连接到MongoDB数据库。 在主页的路由函数,我们使用collection.find()方法从MongoDB数据获取数据,并将其传递给名为`index.html`的HTML模板。 在`index.html`,你可以使用HTML、CSS和JavaScript等前端技术,根据数据的需要来进行数据展示和可视化。 最后,我们使用`app.run()`来运行Flask应用,启动一个本地服务器,监听默认的5000端口,可以在浏览器输入`http://localhost:5000/`来查看可视化的数据页面。 需要注意的是,你需要根据自己的MongoDB数据库和集合名称进行相应的修改,并在`index.html`根据数据结构进行适当的渲染。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值