使用 Python 创建嵌套 JSON 请求

发布于 2024-12-07 02:08:17 字数 482 浏览 1 评论 0原文

用户需要传递 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 模块反序列化)。

有什么建议吗?

A user needs to pass a json object as a part of the request. It would look something like this:

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

I have two problems right now. First, I can't figure out how to test this code by recreating the nested POST. I can successfully POST a dict but posting the list of addresses within the JSON object is messing me up.

Simply using cURL, how might I do this? How might I do it with urrlib2?

My second issue is then deserializing the JSON POST object on the server side. I guess I just need to see a successful POST to determine the input (and then deserialize it with the json module).

Any tips?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傲世九天 2024-12-14 02:08:17

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

目前您的 JSON 有两个问题:

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

First make sure your JSON is valid. Paste it into the JSONLint web page.

Currently your JSON has two issues:

  1. there is no comma between "token" :"ayaljltja" and "addresses": [...]
  2. a single quote is not a valid way of delimiting a JSON string, replace them all with double quotes.
荆棘i 2024-12-14 02:08:17

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

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

With command line curl, save your JSON to a file, say data.json. Then try: curl -X POST -d @data.json http://your.service.url

It's also possible to enter the JSON directly to the -d parameter but (as it sounds like you know already) you have to get your quoting and escaping exactly correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文