Flask或Werkzeug/0.9.4断柱d

2024-04-27 03:17:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现了一些我不理解的由Werkzeug/0.9.4引起的烧瓶静止行为。当我试图发布包含“=”的有效JSON时,使用Multidict似乎破坏了我的数据。在

下面是我的测试JSON:

{
    "alert": {
        "@id": "90",
        "action": "hoojimaflip",
        "fruit": {
            "@bowl": "bananas",
            "@protocol": "tcp"
        },
        "url": "https://this-is-a-sample/paramer?id=90"
    }
}

这是POST方法。在

^{pr2}$

如果我在application/json中使用cURL就可以了。我正确地在请求数据. 稍后我需要将其呈现回JSON,但没有问题。在

{
    u'alert': {
        u'@id': u'90'
        u'action': u'hoojimaflip', 
        u'fruit': {
              u'@bowl': u'bananas', 
              u'@protocol': u'tcp'
        },
        u'url': u'https://this-is-a-sample/paramer?id=90', 
    }
}

如果我使用application/x-www-form-urlencoded通过cURL发布,那么我应该能够在请求.窗体. 但是,似乎有什么东西破坏了我的数据。在

ImmutableMultiDict([('
   { "alert": { 
         "@id": "90",
         "action": "hoojimaflip",
         "fruit": {
             "@bowl": "bananas",
             "@protocol": "tcp"
         },
         "url": "https://this-is-a-sample/paramer?id', u'90"    
     }
 }'
 )])

“=”符号被用作某种记录分隔符,并破坏已发布的JSON。在

有人有什么想法吗?我错过了什么明显的东西吗?在

谢谢!在


Tags: 数据httpsidjsonurlisactionalert
1条回答
网友
1楼 · 发布于 2024-04-27 03:17:05

如果外部应用程序顽固地使用替代mime类型进行POST,那么可以强制Flask将数据视为JSON,而是使用^{} method,将force参数设置为True

data = request.get_json(force=True)

不要试图将JSON负载视为表单数据,那样做是行不通的。在

相关问题 更多 >