在使用python的jason库时,偶然碰到以下问题
TypeError: the JSON object must be str, bytes or bytearray, not ‘list’
通过如下代码可复现问题
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> import json >>> ra = json.loads(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\Python36\lib\json\__init__.py", line 348, in loads 'not {!r}'.format(s.__class__.__name__)) TypeError: the JSON object must be str, bytes or bytearray, not 'list'
分析可知,python中的列表如果要通过json库解析为jason对象,就会出现以上提示。意思是,jason的对象必须是字符串,字节或字节数组,不能是列表。如果将 a 通过 str(a),在调用 loads,则不会出现以上问题。
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> str(a) '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]' >>> json.loads(str(a)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
》扩展说明 》
jason导入数据
jason.load
jason.loads 其中s表示字符串
jason 导出数据
f = open(‘./data/test.txt’, ‘r’)
jason.dump(data, f)
jason.dumps