python 输出JSON类型数据时遇到的编码问题(utf8,unicode)

来源:互联网 发布:淘宝百货店铺名字 大全 编辑:程序博客网 时间:2024/05/18 18:44

      • 开发背景
      • 遇到的问题
      • 参考资料

开发背景

目前已经用scala开发了RESTFUL API来接收传送来的用户聊天数据,正在在使用python开发kafka的consumer消费kafka中的数据,每天保存成一个文件,然后加载到hive中。python版本是2.7

遇到的问题

  1. 发送中文时的乱码问题
    首先在在测试RESTFUL API 的时候就遇到了后台发送的中文信息乱码问题,这个问题在java或者scala端添加上正确的头部信息后搞定了

    HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
  2. 消费kafka信息时的解码问题
    然后在使用python将消息消费出来时也出现了编码问题,并不能正确的将中文内容保存下来,例如 “content” : “\u4f60\u60f3\u5565\u5462”

    调试排查后发现主要原因在使用json.dumps方法是 没有指明 ensure_ascii=False(默认为True)
    当然还要声明python的编码

    reload(sys)sys.setdefaultencoding('utf-8')

    否则会有这个错误

    'ascii' codec can't decode byte 0xe6 in position 197: ordinal not in range(128)

参考资料

python中json.dumps使用及字符编码

阅读全文
0 0
原创粉丝点击