需要通过python将mysql5.7数据库中一个字段(json类型)的值查出来并进行修改
将数据库查出来的字符串转为对象
get_sql = "select column_info from dw_table_config where table_name = '%s'" % dw_table
cmd = 'mysql %s -N -e "%s"' % (dms.ods_db_link, get_sql)
result = os.popen(cmd)
dw_columns = json.loads(result.readlines()[0].strip('\n'))
result.close()
将dw_columns修改后再写回数据库
update_sql = "update dw_table_config set column_info = '%s' where table_name = '%s'" % (json.dumps(dw_columns, ensure_ascii=False).encode("utf-8").replace('"', '\\"'), dw_table)
cmd = 'mysql %s -N -e "%s"' % (dms.ods_db_link, update_sql)
os.system(cmd)
读取时候正常读取即可,写会的时候需要在dumps时候增加如下参数
ensure_ascii=False
之后将dump的结果再进行encode处理
encode("utf-8")