博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python2 JSON.load成Unicode的坑
阅读量:6274 次
发布时间:2019-06-22

本文共 637 字,大约阅读时间需要 2 分钟。

我是接口调用方,今天在联调的时候,接口方的同学问我传过来的json是神马玩意,怎么每个item前还带个u的。

我看了一眼,我靠,还真是带个u的,自己调试的时候楞是没发现。也怪自己以前没怎么遇到过Python的编码坑,这次重新用起Python2来,一不小心就踩进坑了。
一通debug发现是Python自带的Json库会把json文件load成Unicode对象。如果想要变成str对象的话,就要自己去encode。
祭出so大法...#请叫我so搬运工

def byteify(input):    if isinstance(input, dict):        return {byteify(key):byteify(value) for key,value in input.iteritems()}    elif isinstance(input, list):        return [byteify(element) for element in input]    elif isinstance(input, unicode):        return input.encode('utf-8')    else:        return input

这个函数递归的把list和dict里的Unicode对象encode成str。

当然,我不觉得这是the right way。使用yaml里的json来代替官方自带的json可能更好。

转载地址:http://bkmpa.baihongyu.com/

你可能感兴趣的文章
ASUS Merlin固件开启JFFS教程
查看>>
JS面向对象之四 【new】 (创建特定对象的语法糖)
查看>>
使用 Nodejs 制作命令行工具
查看>>
Python调用C/C++方式
查看>>
JavaScript中的函数与arguments
查看>>
在vue-cli中组件通信
查看>>
翻译连载 | 附录 C:函数式编程函数库-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
查看>>
【313天】跃迁之路——程序员高效学习方法论探索系列(实验阶段71-2017.12.15)...
查看>>
Linux和Ubuntu的区别与联系
查看>>
【译】Tree-shaking - webpack 2 和 Babel 6
查看>>
开源跨平台移动项目Ngui【Action动作系统】
查看>>
ESP32:mdns协议
查看>>
Docker拥抱k8s早有预兆,Docker现何去何从?
查看>>
PHP 源码探秘 - 为什么 trim 会导致乱码
查看>>
你不知道的CSS(二)
查看>>
Head First Python 学习心得(1-6章)
查看>>
从0实现一个tiny react(一)
查看>>
更换电脑后迁移博客
查看>>
20 行代码写一个数据推送服务
查看>>
Android逆向工程 实践篇
查看>>