之前用nodejs,实现了一个简单的http客户端,服务端基于flask。服务端收到的json数据为unicode格式。不转码,服务端出现各种错误。
网上找了递归实现的方法:现贴出来,共同学习一下:
def byteify(self, obj):
if isinstance(obj, dict):
return {self.byteify(key): self.byteify(value) for (key, value) in obj.iteritems()}
elif isinstance(obj, list):
return [self.byteify(element) for element in obj]
elif isinstance(obj, unicode):
return obj.encode('utf-8')
else:
return obj
由于服务端python版本为2.6.X的linux环境, 无法识别这种python 版本2.7以上才支持的for循环写法,现修改如下:
def byteify(self, obj):
if isinstance(obj, dict):
res = {}
&nbs

在Python 2.6环境下,使用HTTP通信时遇到字典和列表中Unicode数据转码问题。为了解决服务端接收的JSON数据为Unicode格式导致的错误,采用了一种递归方法将Unicode转为UTF-8。代码中展示了如何针对字典和列表进行转换,以确保在不支持2.7以上版本for循环语法的环境中也能正常工作。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



