使用Python创建嵌套JSON请求
一个用户需要在请求中传递一个json对象。它看起来大概是这样的:
{"token" :"ayaljltja",
"addresses": [
{'name':'Home','address':'20 Main Street',
'city':'new-york'},
{'name':'work', 'address':'x Street', 'city':'ohio'}
]}
我现在有两个问题。首先,我不知道怎么测试这段代码,特别是怎么重新创建一个嵌套的POST请求。我可以成功地发送一个字典,但在JSON对象中发送地址列表让我很困惑。
如果我简单地使用cURL,我该怎么做?用urllib2又该怎么做呢?
我的第二个问题是在服务器端反序列化这个JSON POST对象。我想我只需要看到一个成功的POST请求,以便确定输入(然后用json模块进行反序列化)。
有什么建议吗?
2 个回答
2
使用命令行工具curl,可以把你的JSON数据保存到一个文件,比如叫做data.json。然后你可以试试这个命令:curl -X POST -d @data.json http://your.service.url
当然,你也可以直接把JSON数据放到-d参数里,但(听起来你已经知道了)你需要确保引号和转义符都写得非常准确。
2
首先,确保你的JSON是有效的。可以把它粘贴到JSONLint这个网站上检查。
目前你的JSON有两个问题:
- 在
"token" :"ayaljltja"
和"addresses": [...]
之间缺少一个逗号。 - 单引号不是有效的JSON字符串定界符,所有的单引号都要换成双引号。