问一个关于python json的问题?
问题描述
想知道为什么这段代码运行的结果不是想象中的’['123']’
In [1]: import jsonIn [2]: t = ’[]’In [3]: t = json.dumps(json.loads(t).append(’123’))In [4]: tOut[4]: ’null’
但是拆分以后又正常运行?
In [5]: t1 = ’[]’In [6]: t2 = json.loads(t1)In [7]: t2Out[7]: []In [8]: t2.append(’123’)In [9]: t2Out[9]: [’123’]In [10]: t1 = json.dumps(t2)In [11]: t1Out[11]: ’['123']’
甚至不引入多一个变量,拆分也是正常运行
In [12]: t1 = ’[]’In [13]: t1 = json.loads(t1)In [14]: t1Out[14]: []In [15]: t1.append(’123’)In [16]: t1Out[16]: [’123’]In [17]: t1 = json.dumps(t1)In [18]: t1Out[18]: ’['123']’
请指教
问题解答
回答1:因为 list.append 返回值是 None 而不是 列表自己
回答2:列表的append操作返回的是 None, 即 json.loads(t).append(’123’) 返回的是None。
拆开的操作不是 append的返回值,而就是这个列表对象。
相关文章:
1. python 计算两个时间相差的分钟数,超过一天时计算不对2. docker容器呢SSH为什么连不通呢?3. docker不显示端口映射呢?4. 做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?5. node.js - express框架,设置浏览器从缓存中读取静态文件,只有js从缓存中读取了,css还有一些图片为何没有从缓存中读取?6. 正在使用electron和node.js做桌面应用,需要实时监听是否有网络连接,node或者electron是否可以做到7. python - flask post提交timestamp不能作为参数,这是为什么?8. java - 如何点击按钮,重新运行(我是初学者)?9. vue.js - vue-router开启HTML5的history模式后nginx配置10. node.js - nodejs+express+vue

网公网安备