mysql 连接器 python,NotSupportedError

发布于 2022-09-07 08:43:18 字数 949 浏览 16 评论 0

从Mongodb导出一批 Json 数据,需要转到 Mysql,但是导出的 Json 格式无法直接写入mysql,就想着先把数据转为Pandas的dataframe,然后再通过dataframe写入sql:

import pandas as pd
from sqlalchemy import create_engine
import json


def json_to_sql(jsonfile, sqlname):
    df = pd.read_json(jsonfile, lines=True)
    conn = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/ScientificName?charset=utf8')
    for i in range(len(df)):
        df['chromosomes'][i] = json.dumps(df['chromosomes'][i][0], ensure_ascii=False)
    print(df['chromosomes'][0])
    df.to_sql(name=sqlname, con=conn, if_exists='append', index=False)
        

json_to_sql('/Downloads/数据表JSON-20180118/speciesHengduan.json', 'speciesHengduan')

结果运行时总是报错,用的 mysql 版本是 8.0.11:

NotSupportedError: (mysql.connector.errors.NotSupportedError) Authentication plugin 'caching_sha2_password' is not supported (Background on this error at: http://sqlalche.me/e/tw8g)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

埋葬我深情 2022-09-14 08:43:18

MySQL8在这里和低版本不兼容,你可以重新安装MySQL(或者用Reconfigure选项),把认证的选项设置为“Use Legacy Authentication Method”, 或者你如果不是必须要用MySQL 8,可以降级到低版本。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文