处理HTTP查询参数

时间:2014-04-03 10:46:50

标签: python rest query-parameters

我有一个简单的服务器,它会将JSON返回给用户。我希望为服务提供一些输入,所以我使用查询参数:

/path?paramName=paramValue&paramName2=paramValue2....&paramNamen=paramValuen

在Python中,解析这些参数的最佳方法是什么?

我的服务器是一个如下定义的线程服务器:

class ThreadingSimpleServer(SocketServer.ThreadingMixIn,
                            BaseHTTPServer.HTTPServer):
    """ simple threaded server """
    pass

在我的请求处理程序中,我实现了do_GET()

我是否应该根据?对此功能进行拆分,以从参数中分离出路径,然后再次在&上拆分,或者有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用urllib.parse中的功能:

import urllib.parse

u = "http://java.dzone.com/articles/python-201-decorators?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+zones%2Fpython+%28Python+Zone%29"
p = urllib.parse.urlparse(u)
q = urllib.parse.parse_qs(p.query)
print(q)

输出:

{'utm_campaign': ['Feed: zones/python (Python Zone)'],
 'utm_medium': ['feed'],
 'utm_source': ['feedburner']}