我必须通过 url 发送批量数据项以在服务器端处理。
是否可以使用get方法发送?
list1 = ["string1","string2","string3","string4"]
list2 = ["domain_string1","domain_string2"]
url = http://127.0.0.1/search?l=list1&l2=list2
应该如何传递这些列表?
这些项目列表会动态增长。有时我们会在每个列表中得到 10 个项目
建议我怎么走?
最佳答案
一般来说,最好避免在 GET 请求中使用长查询字符串。一个很好的引用问题是 SO 问题 What is the maximum length of a URL? .您不想超过 2000 个字符。
如果您的商品始终适合此长度,您可以使用 urllib.urlencode转换您的参数:
>>> list1 = ["string1","string2","string3","string4"]
>>> list2 = ["domain_string1","domain_string2"]
>>> allparams = map(lambda x: ("list1", x), list1)
>>> allparams += map(lambda x: ("list2", x), list2)
>>> import urllib
>>> urllib.urlencode(allparams)
'list1=string1&list1=string2&list1=string3&list1=string4&list2=domain_string1&list2=domain_string2'
相反,您可以使用 POST 请求。我强烈推荐 requests图书馆:
import requests
r = requests.post("http://127.0.0.1/search", data=allparams)
关于python - 如何在url中发送批量数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892893/