我有一个python作为CGI,来自jquery的POST会将json对象转换为数组,所以当我从jquery看到POST时,我实际上看到了:
login_user[username]=dfdsfdsf&login_user[password]=dsfsdf
([和]已经逃脱)
我的问题是如何在python中将此字符串转换回JSON?或者,我如何将此字符串转换为python数组/ dict结构,以便我可以更轻松地处理它?</ p>
[编辑] 我的jquery发布了:
{'login_user': {'username':username, 'password':password}}
答案 0 :(得分:5)
如果你想要完成的是从浏览器发送结构化数据,然后在Python后端解压缩并保持相同的结构,我建议如下:
在浏览器中创建JavaScript对象以保存您的数据:
var d = {}
d['login_user'] = { 'username': 'foo', 'password': 'bar' }
POST到你的后端做这样的事情:
$ .post(url,{'data':encoded_json_data},...)
在你的Python代码中,解析JSON,我的示例中的POST是你在CGI脚本中获取POST数据的地方:
data = json.loads(POST['data'])
data['login_user']
答案 1 :(得分:1)
import re
thestring = "login_user[username]=dfdsfdsf&login_user[password]=dafef"
pattern = re.compile(r'^login_user\[username\]=(.*)&login_user\[password\]=(.*)')
match = pattern.search(thestring)
print match.groups()
输出:
>>> ('dfdsfdsf', 'dafef')
因此,
lp = match.groups()
print "{'login_user': {'username':"+lp[0]+", 'password':"+lp[1]+"}}"
应承担:>>> {'login_user': {'username':dfdsfdsf, 'password':dafef}}
答案 2 :(得分:1)
>>> import json
>>> data = {'login_user':{'username':'dfdsfdsf', 'password':'dsfsdf'}}
>>> json.dumps(data)
'{"login_user": {"username": "dfdsfdsf", "password": "dsfsdf"}}'
我怀疑data
已经包含在GET
var中,如果它来自网址...