使用Python创建嵌套的JSON请求

时间:2011-09-27 13:42:05

标签: python json serialization curl deserialization

用户需要将json对象作为请求的一部分传递。它看起来像这样:

   {"token" :"ayaljltja",
   "addresses": [
      {'name':'Home','address':'20 Main Street', 
       'city':'new-york'}, 
      {'name':'work', 'address':'x Street', 'city':'ohio'}
   ]}

我现在有两个问题。首先,我无法弄清楚如何通过重新创建嵌套POST来测试此代码。我可以成功发布一个字典,但在JSON对象中发布地址列表让我感到困惑。

只需使用cURL,我该怎么做?我怎么能用urrlib2做到这一点?

我的第二个问题是在服务器端反序列化JSON POST对象。我想我只需要看到一个成功的POST来确定输入(然后使用json模块对其进行反序列化)。

任何提示?

2 个答案:

答案 0 :(得分:2)

使用命令行curl,将JSON保存到文件中,例如data.json。然后尝试:curl -X POST -d @data.json http://your.service.url

也可以直接在-d参数中输入JSON,但是(听起来你已经知道了)你必须得到你的引用和转义完全正确。

答案 1 :(得分:1)

首先确保您的JSON有效。将其粘贴到JSONLint网页。

目前您的JSON有两个问题:

  1. "token" :"ayaljltja""addresses": [...]
  2. 之间没有逗号
  3. 单引号不是分隔JSON字符串的有效方法,请用双引号替换它们。