将JSON或XML或CSV数据添加到MySQL服务器

时间:2017-06-20 05:22:31

标签: python mysql json xml csv

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

我是MySQL的新手,并且无法在线找到任何内容。

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

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

  

1)。我将为您回答JSON >> 如何使用python在MySQL数据库中存储JSON数据?

如果你的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数据库存储XML数据   python?

XML数据

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

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

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 >> 如何使用MySQL数据库存储CSV数据   python?

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)

答案 1 :(得分:1)

我不知道无论如何直接将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()