RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1365427
Accepted
Miekrif
Miekrif
Asked:2022-05-24 15:08:43 +0000 UTC2022-05-24 15:08:43 +0000 UTC 2022-05-24 15:08:43 +0000 UTC

如何使用 pymysql 正确地将 json 写入 mysql?

  • 772

亲爱的专家,有一个带有mysql的容器和一个包含来自git的数据的字典,该字典被转换为json

我只在python中待了一个星期,我正在等待严厉但有建设性的批评并要求您提供链接,因为我在互联网上挖出的所有内容都没有给我一寸解决缺少此信息的问题

import mysql.connector
import json
import mysql
import pymysql
import pymysql.cursors
from PythonGIT import Lastwords

#make json data from Lastwords
json_send = json.dumps(Lastwords, indent=4)
#print(json_send)
#make connect to DB
def create_connection(host_name, host_port, user_name, user_password, db_name):
    connection = None
    try:
        connection = mysql.connector.connect(
            host=host_name,
            port=host_port,
            user=user_name,
            passwd=user_password,
            database=db_name
        )
        print("Connection to MySQL DB successful")
    except Error as e:
        print(f"The error '{e}' occurred")

    return connection
connection = create_connection("localhost", 3306, "root", "My:S3cr3t/", "jiragit")
cursor = connection.cursor(pymysql.cursors.DictCursor)
#send json to DB
# json_send
# sql = ""
with cursor:
    sql = "CREATE TABLE IF NOT EXISTS jiragit ( JiraTicket TEXT, EVENT TEXT) VALUES (%s,%s)"
    cursor.execute(sql, json_send)




connection.commit()
#Close connections
connection.close()
print("Connect close")

json

"MID-4151": [
        [
            "7e5ac616df12ed6fb344c8cf1817e5a9f4ee6c34",
            "kurbat_kanstantsin"
        ],
        [
            "1f201a2c10e12f3781afb7cf52e0b24530ee22da",
            "kurbat_kanstantsin"
        ],
        [
            "e473e1b77857fa2ef6e34c7f4117e48d1149cb4c",
            "kkurbat"
        ],
        [
            "41085f9b17a02b1773da26291573be51dd7c44fc",
            "kkurbat"
        ]
    ],
    "IN-2558": [
        [
            "18a382da0903bc4c1aa8dbdc09423e6120293409",
            "artem"
        ],
        [
            "f28fee874a30b854536ace422f401181b70d6f28",
            "artem"
        ],
        [
            "c5f4b78781e1495c21fc02bf5a696835a1eab431",
            "artem"
        ],
        [
            "313b300d2e4ae3eb17f62cf2acd6d00713df0ca9",
            "artem"
        ],
        [
            "2a7a1a6517ffb71f5a0d1da3cf18bd6c511102d0",
            "artem"
        ]
    ],

听写

{'CE-2019': [('a3873de1b37c14ea2d9379387026da6188cdd5d2', 'Ivan Vdovin'), ('327f430f39dd2db0c4ad9bb8fa599d7be7b1b4df', 'dmitrykoptik')], 'Merge_or_Fix': [('467f483d9fac6f2a587065ad6c3eeb4557b430bc', 'Stanislav Dudkov aka D2269'), ('1565ec5429da1156b593ea16658409288176edbe', 'Petr Sabaleuski'), ('2bda4e434cbe9271e9719feb16d27b04058d689f', 'Petr Sabaleuski'), ('caf6ee5460645a2691aeb03693a94327fd6833e7', 'Alex_Odinokov'),
python
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Namerek
    2022-05-24T22:33:34Z2022-05-24T22:33:34Z

    问题:

    吉拉票 事件
    MID-4151 [["7e5ac616df12ed6fb344c8cf1817e5a9f4ee6c34", "kurbat_kanstantsin"], ["1f201a2c10e12f3781afb7cf52e0b24530ee22da", "kurbat_kanstantsin"], ["e473e1b77857fa2ef6e34c7f4117e48d1149cb4c", "kkurbat"], ["41085f9b17a02b1773da26291573be51dd7c44fc", "kkurbat"]]
    IN-2558 [["18a382da0903bc4c1aa8dbdc09423e6120293409", "artem"], ["f28fee874a30b854536ace422f401181b70d6f28", "artem"], ["c5f4b78781e1495c21fc02bf5a696835a1eab431", "artem"], ["313b300d2e4ae3eb17f62cf2acd6d00713df0ca9", "artem"], ["2a7a1a6517ffb71f5a0d1da3cf18bd6c511102d0", "artem"] ]

    您如此想象桌子还是以某种方式不同?

    create table test_scm.jira_git
    (
        JiraTicket text,
        EVENT      json
    );
    

    升级版:

    尝试这样的事情:

    • 使用数据库的库和你的不一样,但也不错,使用它们的原理是相同的。
    • 顺便说一句,您被正确地告知您的 json 无效。
    from pymysql.cursors import Cursor
    from pymysql import connect
    import simplejson as json
    
    conn = connect(
        host='localhost',
        port=3306,
        user='user',
        password='********',
        autocommit=True,
        database='db'
    )
    
    cur: Cursor = conn.cursor()
    
    # В случае если Ваш JSON уже словарь
    data = {
        "MID-4151": [
            [
                "7e5ac616df12ed6fb344c8cf1817e5a9f4ee6c34",
                "kurbat_kanstantsin"
            ],
            [
                "1f201a2c10e12f3781afb7cf52e0b24530ee22da",
                "kurbat_kanstantsin"
            ],
            [
                "e473e1b77857fa2ef6e34c7f4117e48d1149cb4c",
                "kkurbat"
            ],
            [
                "41085f9b17a02b1773da26291573be51dd7c44fc",
                "kkurbat"
            ]
        ],
        "IN-2558": [
            [
                "18a382da0903bc4c1aa8dbdc09423e6120293409",
                "artem"
            ],
            [
                "f28fee874a30b854536ace422f401181b70d6f28",
                "artem"
            ],
            [
                "c5f4b78781e1495c21fc02bf5a696835a1eab431",
                "artem"
            ],
            [
                "313b300d2e4ae3eb17f62cf2acd6d00713df0ca9",
                "artem"
            ],
            [
                "2a7a1a6517ffb71f5a0d1da3cf18bd6c511102d0",
                "artem"
            ]
        ]
    }
    
    # В случае если Ваш JSON - строка - воспользуйтесь `json.loads()`
    
    
    def prepare_data(item):
        key, val = item
        return key, json.dumps(val)
    
    
    cur.executemany(
        "insert into test_scm.jira_git ( JiraTicket, EVENT ) values (%s, %s) ",
        [
            *map(prepare_data, data.items())
        ]
    )
    
    • 1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5