首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中编写web服务器来处理post (content-type是application/json)?

如何在python中编写web服务器来处理post (content-type是application/json)?
EN

Stack Overflow用户
提问于 2011-04-15 15:16:33
回答 2查看 2.3K关注 0票数 2

下面是详细信息:

我们想要用Pythonv2.6.5编写一个web服务器,并且已经完成了do_GET方法。

但是我不知道如何编写do_POST()方法。

如果post请求如下所示:

代码语言:javascript
运行
复制
POST /employee/111 HTTP/1.1
Content-Type: application/json
Content-Length: XX

{"name": "John"}

如何在do_POST()方法中获取JSON数据{"name": "John"}?(首选标准库)

如果您能说明原因并提供样品,我们将不胜感激。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-04-15 15:46:21

使用cgi.FieldStorage类将数据处理为可从POST获得的表单数据。当你去的时候,这是文章的主体部分,在你的例子中是json格式。

代码语言:javascript
运行
复制
def do_POST(self):
    # Parse the form data posted
    form = cgi.FieldStorage(
        fp=self.rfile, 
        headers=self.headers,
        environ={'REQUEST_METHOD':'POST',
                 'CONTENT_TYPE':self.headers['Content-Type'],
                 })

下面的an example演示了如何做到这一点

如果内容是合适的json,使用标准库中的json模块加载到json格式,您可以进一步处理它。

代码语言:javascript
运行
复制
>>> import json
>>> s = '{"name": "john"}'
>>> d = json.loads(s)
票数 2
EN

Stack Overflow用户

发布于 2011-04-15 15:43:51

在您的文章中,元素{"name": "John"}只是一个需要json解析的字符串。因此,首先导入json模块,然后执行json.load

代码语言:javascript
运行
复制
import json
post_json_data = json.loads('{"name": "John"}')

要检测json数据从哪里开始,您只需要读取到第一个{,从那里开始的所有内容都应该是json数据的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5673524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档