【发布时间】:2017-11-22 11:44:07
【问题描述】:
有没有办法将 JSON、XML 或 CSV 数据发送到本地 MySQL 服务器?
我是 MySQL 新手,在网上找不到任何东西。
任何一种数据类型都可以使用,因为我的代码可以将我的所有数据转换为我需要的任何格式,即 JSON、XML 和 CSV。
任何帮助表示赞赏!
【问题讨论】:
有没有办法将 JSON、XML 或 CSV 数据发送到本地 MySQL 服务器?
我是 MySQL 新手,在网上找不到任何东西。
任何一种数据类型都可以使用,因为我的代码可以将我的所有数据转换为我需要的任何格式,即 JSON、XML 和 CSV。
任何帮助表示赞赏!
【问题讨论】:
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
>>如何使用 蟒蛇?
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)
【讨论】:
我不知道将 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()
【讨论】: