如何在Python WSGI应用中读取Json对象

2 投票
1 回答
5665 浏览
提问于 2025-04-17 14:52

我需要开发一个用Python(版本2.7)写的WSGI应用程序,用来接收和解析从其他网站发送过来的JSON格式的数据。

下面是一个示例JSON对象的格式。

{
  "BuildId":"4c53575f-36f48a7f1f37",
  "EventId":1,
  "EventName":"Archiving Complete",
  "EventDescription":"Fired each time the build products finish unzipping on an archive server after a successful build.",
  "ConfigurationId":2021,

  [
     {
        "archive_server":"CA",
        "ftp":"ftp://ABC.com/2011_V2/ccoderre_build_dev_build/2011.4.103.002",
        "dfs":"\\\\ABD.com\\ccoderre_build_dev_build\\2011.4.103.002"
     }
  ],
  "Changelists":
  [
     {
        "author":"mike",
        "description":"integrating from mainline\n",
        "number":1233242,
        "status":"OK",
        "submit_time":"\/Date(1305844615000)\/"
     }
  ],
  "InheritedChangelists":[],
  "CustomEventInfo":
  [
     {
        "Key":"ArchiveServer",
        "Value":"buildfsct"
     },
     {
        "Key":"HasSymbols",
        "Value":0
     }
  ]
}

我该如何使用WSGI来获取(读取)“BuildId”、“ConfigurationId”、“ftp”等信息呢?有没有人能帮我一下?提前谢谢大家!

1 个回答

13

使用标准库中的 json 来解析数据,结果会变成一个 Python 字典:

def application(environ, start_response):
    try:
        request_body_size = int(environ.get('CONTENT_LENGTH', 0))
    except (ValueError):
        request_body_size = 0

    request_body = environ['wsgi.input'].read(request_body_size)
    data = json.loads(request_body)
    build_id = data['BuildId']
    # etc.

撰写回答