使用Python创建嵌套JSON请求

5 投票
2 回答
2855 浏览
提问于 2025-04-17 03:11

一个用户需要在请求中传递一个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有两个问题:

  1. "token" :"ayaljltja""addresses": [...]之间缺少一个逗号。
  2. 单引号不是有效的JSON字符串定界符,所有的单引号都要换成双引号。

撰写回答