我们我们有时候会使用TCP直接传输JSON数据,这时候正确解析数据就很关键了,最近在使用Python解析TCP传输的JSON数据时就遇到了中文不能正常显示的问题。

原因分析

TCP接口数据转为json后,中文为Ascii码是因为在使用json库的dumps方法时,少加了参数ensure_ascii,该参数默认值为True,需要改成False。

解决方法

先找到代码中导入MessageToJson()方法的地方,如下:

from google.protobuf.json_format import MessageToJson

然后按住Ctrl键且鼠标单击,进入并修改 site-packages\google\protobuf\json_format.py文件中的ToJsonString方法(约195行),在json.dumps()中添加参数 ensure_ascii=False,这样就可以正常显示了。
修改前:

def ToJsonString(self, message, indent, sort_keys):js = self._MessageToJsonObject(message)return json.dumps(js, indent=indent, sort_keys=sort_keys)

修改后:

def ToJsonString(self, message, indent, sort_keys):js = self._MessageToJsonObject(message)return json.dumps(js, indent=indent, sort_keys=sort_keys, ensure_ascii=False)

解决Python中TCP数据转为json后中文变为Ascii码的问题相关推荐

  1. 如何解决python中打印数据的时候显示不全?

    如何解决pandas数据分析的时候,打印表格数据的时候出现省略号呢? 如下图: 可以使用下面的方法来处理: 方法一: pd.set_option("display.max_rows" ...

  2. python读取json数据格式问题_浅谈Python中的异常和JSON读写数据的实现

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  3. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  4. Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用

    Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...

  5. python列表怎么转成数字,Python中列表元素转为数字的方法分析

    本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...

  6. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  7. 对于解决python中出现的OSError: [Errno 22] Invalid argument: ‘\u202aD‘ 的解决

    对于解决python中出现的OSError: [Errno 22] Invalid argument: '\u202aD' 的解决 ** 今天这导入数据集文件时有时正常运行,有时出现了OSError: ...

  8. python脚本自动运行失败_解决Python中定时任务线程无法自动退出的问题

    python的线程有一个类叫Timer可以,用来创建定时任务,但是它的问题是只能运行一次,如果要重复执行,则只能在任务中再调用一次timer,但这样就存在新的问题了,就是在主进程退出后,不能正常退出子 ...

  9. python怎么验证两个json是不是一样_比较Python中的两个JSON树

    我有这种JSON树的文件夹结构.有什么方法可以将它与同类的Json树进行比较以获得差异(文件丢失或不同的文件属性(日期,crc,..)),并将其作为具有不同/缺失文件名称的列表返回.比较Python中 ...

最新文章

  1. Club Web Site-Customized web controls
  2. Javascript高级程序设计——基本类型和引用类型的值
  3. PhotoShop基础知识
  4. gulp-notify处理报错----gulp系列(二)
  5. IC卡设备驱动模块的代码
  6. Oracle 11.2.0.2 Patch 说明
  7. 完整版的OpenLDAP搭建全过程
  8. C#编程(二十三)----------实现继承
  9. 基于java题库及试卷管理模块的设计与开发(含源文件)
  10. 银联网关支付接口规范
  11. 致敬科比,JS手写贪吃蛇
  12. ACM解题总结——HihoCoder1200 (微软笔试题)
  13. 索尼z2d6503刷机包原厂售后专用固件
  14. php网站挂马,网页挂马详细教程
  15. matlab 多子图_MATLAB|subplot子图分块绘制的方法
  16. 虚拟机中Linux扩容硬盘空间
  17. leetcode (Arranging Coins)
  18. typora+pandoc:markdown文本转换成word(也可把word转换成markdown哦)
  19. HEVC解码器HM源码阅读(四)解析参数集
  20. python记忆式键入,在Python编程模式下输入命令”print(100+200)“执行的结果是()

热门文章

  1. 插值、平稳假设、本征假设、变异函数、基台、块金、克里格、线性无偏最优…地学计算概念及公式推导
  2. 计算机组装小白,自己组装电脑教程:DIY小白装机最新最详细的台式电脑组装教程图解(4)...
  3. 安装CMS一站式建站
  4. R语言向图像中添加LaTeX风格数学公式
  5. React-Native 开发实用指南
  6. 【HDOJ】1008 Elevator_天涯浪子_新浪博客
  7. android日程管理开题报告,基于andorid,安卓个人行程管理软件app,毕业论文设计,课程,开题报告...
  8. java重载运算符_流形:Java的运算符重载
  9. Camtasia的字幕功能应当如何使用
  10. 12V-5V-3.3V电源转换芯片