ai didi

python - JSON 对象必须是 str,而不是 'bytes'

转载 作者:太空狗 更新时间:2023-10-29 23:58:09 24 4
gpt4 key购买 nike

使用 Python 3.5.1,我提取了一个文本文件,其中每一行都是 JSON 格式:{"a":"windows", "b":"stairs"...}

import json
path = 'folder/data.txt'
records=[json.loads(line) for line in open(path,'rb')]

但是我收到错误:

the JSON object must be str, not 'bytes'

打印第一行文件没有问题,所以我很放心,文件路径是正确的。

最佳答案

以文本模式打开文件,而不是二进制模式(可能显式传递 encoding='utf-8' 以覆盖系统默认值,因为 JSON 通常存储为 UTF-8)。 json 模块只接受 str 输入;从以二进制模式打开的文件读取返回 bytes 对象:

# Using with statement just for good form; in this case it would work the
# same on CPython, but on other interpreters or different CPython use cases,
# it's easy to screw something up; use with statements all the time to build good habits
with open(path, encoding='utf-8') as f:
records=[json.loads(line) for line in f]

关于python - JSON 对象必须是 str,而不是 'bytes',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192694/

24 4 0
文章推荐: python - 优雅地访问 networkx 中的边缘属性
文章推荐: c# - 对数组中的 BinarySearch 感到困惑
文章推荐: c# - 有没有理由我不应该通过测试他们的产品来测试一组 0 的变量?
文章推荐: python - 降级 Python Setuptools
太空狗
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com