【问题标题】:msgpack.unpackb in Falcon猎鹰中的 msgpack.unpackb
【发布时间】:2019-11-04 01:27:20
【问题描述】:

我尝试在readthedocs 中学习和部署猎鹰教程的示例代码。 在this section pytest tests 测试应用程序时,得到 1 失败并出现此标题:

E msgpack.exceptions.ExtraData: unpack(b) 收到额外数据。

如何解决这个问题?

pytest 输出:

tests/test_app.py F                                                      [100%]

=================================== FAILURES ===================================
_______________________________ test_list_images _______________________________

client = <falcon.testing.client.TestClient object at 0x7f2cceed5490>

    def test_list_images(client):
        doc = {
            'images': [
                {
                    'href': '/images/1eaf6ef1-7f2d-4ecc-a8d5-6e8adba7cc0e.png'
                }
            ]
        }

        response = client.simulate_get('/images')
>       result_doc = msgpack.unpackb(response.content, raw=False)

tests/test_app.py:26: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

>   ???
E   msgpack.exceptions.ExtraData: unpack(b) received extra data.

msgpack/_unpacker.pyx:209: ExtraData
============================== 1 failed in 0.15s ===============================

app.py、images.py 和 test_app.py 就是教程中的代码,没有任何改动。

【问题讨论】:

    标签: python-3.x msgpack falcon


    【解决方案1】:

    在上一步中,他们将响应类型更改为 MessagePack。如果您将 JSON 保留为响应类型,这可能是您的问题。

    解决替换

    result_doc = msgpack.unpackb(response.content, raw=False)
    

    通过

    result_doc = json.loads(response.content)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 2017-05-31
      相关资源
      最近更新 更多