如何使用python wsgi应用程序读取Json对象

Fra*_*Yin 2 python post json mod-wsgi python-2.7

我需要开发一个python(v2.7)wsgi应用程序来接收和解析从另一个Web发布的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
     }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何使用wsgi来获取(读取)"BuildId","ConfigurationId","ftp"等?谁能帮我?提前致谢!

Mar*_*ers 9

使用stdlib 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.
Run Code Online (Sandbox Code Playgroud)