【问题标题】:How to load json from resource_stream in python 3如何在 python 3 中从 resource_stream 加载 json
【发布时间】:2016-05-11 01:05:57
【问题描述】:

我正在尝试将pkg_resources 中的resource_streamjson.load 结合使用,并且在python 3 中遇到了python 2 中不存在的问题。

当我尝试运行以下命令时,出现错误:

loaded_json = json.load(resource_stream(__name__, 'path/to/foo.json'))

>> TypeError: the JSON object must be str, not 'bytes'

【问题讨论】:

    标签: python json python-3.x pkg-resources


    【解决方案1】:

    看起来在 Python 3 中,json.load 不再支持从字节流中读取,您必须在解析之前对其进行解码:

    json_string = resource_stream(__name__, 'path/to/foo.json').read().decode()
    loaded_json = json.loads(json_string)
    

    【讨论】:

    • 此行为存在于 3.5.2 中,但不存在于 3.6.7 中。不确定修复此问题的确切点版本是什么,但在 3.6.7 中,您可以使用 json.load(resource_stream(...)) 而无需读取和解码。
    猜你喜欢
    • 2021-03-20
    • 2012-01-17
    • 2018-04-11
    • 2018-10-21
    • 2015-07-21
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多