相关疑难解决方法(0)

urlencode一组值

我正在尝试使用urllib.urlencode对python中的字典进行urlencode.问题是,我必须编码一个数组.

结果必须是:

criterias%5B%5D=member&criterias%5B%5D=issue
#unquoted: criterias[]=member&criterias[]=issue
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是:

criterias=%5B%27member%27%2C+%27issue%27%5D
#unquoted: criterias=['member',+'issue']
Run Code Online (Sandbox Code Playgroud)

我尝试过几件事,但似乎无法得到正确的结果.

import urllib
criterias = ['member', 'issue']
params = {
    'criterias[]': criterias,
}
print urllib.urlencode(params)
Run Code Online (Sandbox Code Playgroud)

如果我cgi.parse_qs用来解码一个正确的查询字符串,我得到这个结果:

{'criterias[]': ['member', 'issue']}
Run Code Online (Sandbox Code Playgroud)

但如果我对该结果进行编码,则会得到错误的结果.有没有办法产生预期的结果?

python http

42
推荐指数
2
解决办法
3万
查看次数

解析原始HTTP标头

我有一串原始HTTP,我想表示对象中的字段.有没有办法解析HTTP字符串中的各个标头?

'GET /search?sourceid=chrome&ie=UTF-8&q=ergterst HTTP/1.1\r\nHost: www.google.com\r\nConnection: keep-alive\r\nAccept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.45 Safari/534.13\r\nAccept-Encoding: gzip,deflate,sdch\r\nAvail-Dictionary: GeNLY2f-\r\nAccept-Language: en-US,en;q=0.8\r\n
[...]'
Run Code Online (Sandbox Code Playgroud)

python http-headers

36
推荐指数
3
解决办法
6万
查看次数

使用Python解析HTTP请求Authorization标头

我需要像这样的标题:

 Authorization: Digest qop="chap",
     realm="testrealm@host.com",
     username="Foobear",
     response="6629fae49393a05397450978507c4ef1",
     cnonce="5ccc069c403ebaf9f0171e9517f40e41"
Run Code Online (Sandbox Code Playgroud)

并使用Python将其解析为:

{'protocol':'Digest',
  'qop':'chap',
  'realm':'testrealm@host.com',
  'username':'Foobear',
  'response':'6629fae49393a05397450978507c4ef1',
  'cnonce':'5ccc069c403ebaf9f0171e9517f40e41'}
Run Code Online (Sandbox Code Playgroud)

有没有一个图书馆可以做到这一点,或者我可以寻找灵感的东西?

我在谷歌应用引擎上这样做,我不确定Pyparsing库是否可用,但如果它是最好的解决方案,我可以将它包含在我的应用程序中.

目前我正在创建自己的MyHeaderParser对象,并在头字符串上使用reduce().它工作,但非常脆弱.

以下是nadia的精彩解决方案:

import re

reg = re.compile('(\w+)[=] ?"?(\w+)"?')

s = """Digest
realm="stackoverflow.com", username="kixx"
"""

print str(dict(reg.findall(s)))
Run Code Online (Sandbox Code Playgroud)

python google-app-engine parsing http http-headers

12
推荐指数
2
解决办法
9671
查看次数

ajax - 为什么jquery用空格("")替换"+"?

我在这里遇到了问题.当我使用ajax将包含"+"的参数传递给我的控制器时,它将被空格替换.

例如,我将Tom+Jerry+Garfield使用ajax 传递value = .当我在我的控制器中使用System.out.println()时,它会显示Tom Jerry Garfield.我尝试使用其他特殊字符我似乎没有问题.

请帮忙.提前致谢.

java ajax jquery

5
推荐指数
1
解决办法
1万
查看次数

使用正则表达式解析 URL

我试图在我的正则表达式中结合 if else ,基本上如果字符串中存在某些模式,则捕获一种模式,如果没有,则捕获另一种模式。

字符串是:' https://www.searchpage.com/searchcompany.aspx?companyId=41490234&page=0&leftlink=true ”,我想提取'?

因此,如果 '?' 在字符串中检测到,正则表达式应该捕获 '?' 之后的所有内容。标记; 如果没有,则从头开始捕获。

我用过:'(.*\?.*)?(\?.*&.*)|(^&.*)' 但它没有用...

有什么建议吗?

谢谢!

python regex conditional-statements

-1
推荐指数
1
解决办法
910
查看次数