主要涉及到Python的json库的四个方法:dumps和loads、dump和load的应用。
问题
利用Python中的json库读取json文件时,因为错误使用了相应的方法导致报错:TypeError:the Json object must be str, bytes or bytearray,not‘TextIOWrapper’。
分析
首先要弄明白json库的四个方法:dumps和loads、dump和load。其中,dumps和loads是在内存中转换(python对象和json字符串之间的转换),而dump和load则是对应于文件的处理;下面的函数说明中已经很清楚的说明了这一点。
出现这个错误的原因是自己用了loads方法去将json文件转换为python对象,而正确的应该是使用load方法。
json的主要方法的部分源码
说明:
- Serialize :序列化:将对象转化为对应的字符串。
- Deserialize :反序列化:将字符串转化为对应的对象。
源码中的函数说明(不包含参数介绍,有需要可以自己去看源码):
1 | def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, |
举例
下面代码中的第一种为读取本地文件,然后转化为json对象;第二种为获取在线json数据,然后转化为json对象(实际到内存)。
1 | # 1.打开一个本地json文件 |
部分内容参考:https://blog.csdn.net/NOT_GUY/article/details/80954328
本文作者:
荷塘月色
发布时间: 2019-10-10
最后更新: 2019-10-10
本文标题: Python读取json文件时报错.TypeError.the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
本文链接: https://www.yansheng.fun/article/b483c4eb.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
发布时间: 2019-10-10
最后更新: 2019-10-10
本文标题: Python读取json文件时报错.TypeError.the Json object must be str, bytes or bytearray,not ‘TextIOWrapper’
本文链接: https://www.yansheng.fun/article/b483c4eb.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
