【问题标题】:Add JSON or XML or CSV data to MySQL server将 JSON 或 XML 或 CSV 数据添加到 MySQL 服务器
【发布时间】:2017-11-22 11:44:07
【问题描述】:

有没有办法将 JSON、XML 或 CSV 数据发送到本地 MySQL 服务器?

我是 MySQL 新手,在网上找不到任何东西。

任何一种数据类型都可以使用,因为我的代码可以将我的所有数据转换为我需要的任何格式,即 JSON、XML 和 CSV。

任何帮助表示赞赏!

【问题讨论】:

    标签: python mysql json xml csv


    【解决方案1】:

    1).我将为您解答JSON>>如何使用python将JSON数据存储在MySQL DB中?

    如果您的 JSON 格式如下,并且您想在 MySQL database >> table 中存储关联,那么您可以按照第一个示例。

    示例:1

    JSON 格式

    {
     "first_key" : 10,
     "second_key" : 20
    }
    

    JSON 的 Python 核心脚本。

    import MySQLdb
    
    myjson = json.loads(jdata)
    
    def dbconnect():
        try:
            db = MySQLdb.connect(
                host='localhost',
                user='root',
                passwd='',
                db='myjson_db'
            )
        except Exception as e:
            sys.exit("Can't connect to database")
        return db
    
    cursor = db.cursor()
    
    sql = """INSERT INTO my_table (array_key, array_value) VALUES (%s, %s)"""
    
    for array_key, array_value in myjson.items():
        cursor.execute(sql, (array_key, array_value))
    

    如果您只想将数据存储在一列中,则可以按照以下方式关注第二列。

    示例:2

    import MySQLdb
    
    myjson = json.loads(jdata)
    
    def dbconnect():
        try:
            db = MySQLdb.connect(
                host='localhost',
                user='root',
                passwd='',
                db='myjson_db'
            )
        except Exception as e:
            sys.exit("Can't connect to database")
        return db
    
    cursor = db.cursor()
    
    sql = """INSERT INTO my_table (json_column) VALUES (%s)"""
    
    cursor.execute(sql, (myjson))
    

    2). 让我们从 XML >> 开始 如何在 MySQL DB 中存储 XML 数据 蟒蛇?

    XML 数据

    <?xml version="1.0" encoding="UTF-8" ?>
    <first_key>10</first_key>
    <second_key>20</second_key>
    

    下一步是:请在我们的 python 核心脚本中安装:用于将 XML 转换为 JSON 从 here 导入和 import xml2json 的 Python 脚本。

    用于 XML 的 Python 核心脚本

    import MySQLdb
    import xml2json
    import json
    
    xml_data = json.loads(xml2json.xml2json(xmldata))
    
    ### data store functionality or logic is same as example 1 and example 2
    def dbconnect():
        try:
            db = MySQLdb.connect(
                host='localhost',
                user='root',
                passwd='',
                db='myxml_db'
            )
        except Exception as e:
            sys.exit("Can't connect to database")
        return db
    
    cursor = db.cursor()
    
    sql = """INSERT INTO my_table (xml_data) VALUES (%s)"""
    
    cursor.execute(sql, (xml_data))
    

    3). 让我们讨论一下 CSV &gt;&gt; 如何使用 蟒蛇?

    import csv
    import MySQLdb
    
    csv_data = csv.reader(file('my_csv_file.csv'))
    
    def dbconnect():
        try:
            db = MySQLdb.connect(
                host='localhost',
                user='root',
                passwd='',
                db='mycsv_db'
            )
        except Exception as e:
            sys.exit("Can't connect to database")
        return db
    
    for row in csv_data:
    
        cursor.execute('INSERT INTO my_csv_table(csv_first_column, \
              csv_first_column)' \
              'VALUES("%s", "%s")', 
              row)
    

    【讨论】:

      【解决方案2】:

      我不知道将 JSON、XML 或 CSV 直接插入 MySQL 数据库。

      您可以将数据解析为脚本,该脚本可以使用 MySQL-python 等模块将其插入数据库。

      我的 python 不是很好,但希望这个例子就足够了。

      #!usr/bin/python
      # Import mySQL module to interact with database.
      import MySQLdb
      # Import json module to convert the JSON into a Python data structure.
      import json
      
      # Convert the JSON to a usable format.
      data = json.loads(yourjson) 
      
      # Connect to MySQL server.
      db = mySQLdb.connect(host='yourhost',
                           user='youruser',
                           passwd='yourpassword',
                           db='yourschema')
      
      # Create an object to handle SQL statements.
      cur = db.cursor()
      
      # Attempt to execute the SQL statement, if not revert any changes.
      try:
        cur.execute('INSERT INTO table SET col1 = %s, col2 = %s', data.foo, data.bar)
        db.commit()
      except:
        db.rollback()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-11
        • 2017-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多