目录
问题三:在 json.dumps(row) 后再加“\r\n”, 会发现多了一个"\r".
背景描述
要做 data migration 的功能,把 AWS 上一个 site 的 DB 里数据,通过 S3 bucket 作为中转站,搬迁到另一个 site 的 DB 中。
DB 数据导出到文件时,由于各个字段中可能都含有特殊字符,拟通过 json 格式输出到文件中。对select出的每一行的数据使用 json.dumps(row) 时,由于数据格式的问题,遇到各种错误。
python 通过 mysql 查出来的结果,每一行的格式是 tuple。
import mysql.connector
import json
conn = mysql.connector.connect(user=dbuname,
passwd=dbpassword,
host=dbhost,
auth_plugin='mysql_native_password',
port=3306,
db=dbname)
data = ""
with open("src/dlp_expression", 'w+') as file:
cur = conn.cursor()
cur.execute("select * from tb_dlp_expression where license_acct_id = %s" % 101001)
rows = cur.fetchall()
if rows:
for row in rows:
print(type(row))
data += json.dumps(row)
data +="\r\n"
file.write(data)
file.close()
cur.close()
type(row) 的结果是:<class 't