有没有办法将JSON,XML或CSV数据发送到本地MySQL服务器?
我是MySQL的新手,并且无法在线找到任何内容。
这两种数据类型都可以,因为我的代码可以将我的所有数据转换为我需要的任何格式,即JSON,XML和CSV。
任何帮助表示赞赏!
答案 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()