python2中json读取与写入中文乱码问题

需要通过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")

猜你喜欢

转载自blog.csdn.net/catcher92/article/details/85264107