datax的字段reader和write不一致的处理,应对mysql中的转义
py执行#!/usr/bin/env pytho# -*- coding:utf-8 -*-import pymysqlimport json# 创建连接conn = pymysql.connect(host='10.127.37.16', port=3306, user='root', passwd='root', db='datax', charset='utf8')# 创建游标cursor
·
py执行
#!/usr/bin/env pytho
# -*- coding:utf-8 -*-
import pymysql
import json
# 创建连接
conn = pymysql.connect(host='10.127.37.16', port=3306, user='root', passwd='root', db='datax', charset='utf8')
# 创建游标
cursor = conn.cursor()
try:
# 执行SQL语句
cursor.execute("SELECT id,job_json FROM job_info ")
# UPDATE
# job_info
# t
# SET
# job_json = json_set(job_json, '$.job.content[0].reader.parameter.column',
# (SELECT JSON_EXTRACT(job_json, '$.job.content[0].reader.parameter.column')
# FROM
# `datax`.
# `job_info_bknotuse`
# j
# WHERE
# j.id = t.id))
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
rows = row[1]
jsonobj = json.loads(rows)
print(jsonobj)
json_read = jsonobj["job"]["content"][0]["reader"]["parameter"]["column"]
json_read_str = json.dumps(json_read)
json_read_rp_str = json_read_str.replace(r'\"', '`')
json_read_rp_json_obj = json.loads(json_read_rp_str)
jsonobj["job"]["content"][0]["writer"]["parameter"]["column"] = json_read_rp_json_obj
json_str = json.dumps(jsonobj)
json_str = json_str.replace(r'\"', '')
sql = 'update job_info set job_json = \'' + str(json_str) + '\' where id = ' + str(id)
cursor.execute(sql)
#json_read_r =
# 打印结果
except :
print ("Error: unable to fetch data")
conn.commit()
cursor.close()
conn.close()
sqlyog执行
UPDATE job_info t
SET job_json=json_set(job_json,'$.job.content[0].reader.parameter.column',
(SELECT JSON_EXTRACT(job_json,'$.job.content[0].reader.parameter.column') FROM `datax`.`job_info_bknotuse` j WHERE j.id = t.id))
更多推荐
所有评论(0)