Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中解析嵌套JSON_Python_Json_Content Type - Fatal编程技术网

如何在python中解析嵌套JSON

如何在python中解析嵌套JSON,python,json,content-type,Python,Json,Content Type,我很难在python中访问这个嵌套json中的一些值 如何访问此['Records'][0]['s3']['bucket']['name']?为了找到一个简单的python代码片段,我做了很多搜索,但是运气不好。提前谢谢 { "Records": [ { "eventName": "xxxxxxx", "userIdentity": { "principa

我很难在python中访问这个嵌套json中的一些值

如何访问此['Records'][0]['s3']['bucket']['name']?为了找到一个简单的python代码片段,我做了很多搜索,但是运气不好。提前谢谢

{
  "Records": [
    {
      "eventName": "xxxxxxx",
      "userIdentity": {
        "principalId": "AWS:XXXXXXXXXXXXXX"
      },
      "requestParameters": {
        "sourceIPAddress": "XX.XX.XX.XX"
      },
      "responseElements": {
        "x-amz-request-id": "8CXXXXXXXXXXHRQX",
        "x-amz-id-2": "doZ3+gxxxxxxx"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "X-Event",
        "bucket": {
          "name": "bucket-name",
          "ownerIdentity": {
            "principalId": "xxxxxxx"
          },
          "arn": "arn:aws:s3:::bucket-name"
        },
        "object": {
          "key": "object.png",
          "sequencer": "0060XXXXXXX75X"
        }
      }
    }
  ]
}

由于这是一个字符串,请使用内置json库中的
json.loads
方法

import json

json_string = # your json string
parsed_string = json.loads(json_string)
print(parsed_string) # it will be a python dict
print(parsed_string['Records'][0]['s3']['bucket']['name']) # prints the string

你试过运行你的例子吗?如果从其他地方加载json,则需要使用
json
库将其转换为本机字典对象(如其他人所述,
json.loads(data)


@cosmos-1905-14这是一个文件还是一个JSON字符串?@TheSupreme它是一个字符串实际上,我刚才为它创建了一个库:。它可以写入深度嵌套的结构,并在格式之间进行转换。但如果您只是试图读取该值,那么您已经这样做了。你给的狙击手会有用的。只需先用内置的json解析jsonlibrary@cosmos-1905-14我不确定你所说的嵌套是什么意思,但我给出的两个链接完全可以处理你问题中的JSON结构
kv = {
  "Records": [
    {
      "eventName": "xxxxxxx",
      "userIdentity": {
        "principalId": "AWS:XXXXXXXXXXXXXX"
      },
      "requestParameters": {
        "sourceIPAddress": "XX.XX.XX.XX"
      },
      "responseElements": {
        "x-amz-request-id": "8CXXXXXXXXXXHRQX",
        "x-amz-id-2": "doZ3+gxxxxxxx"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "X-Event",
        "bucket": {
          "name": "bucket-name",
          "ownerIdentity": {
            "principalId": "xxxxxxx"
          },
          "arn": "arn:aws:s3:::bucket-name"
        },
        "object": {
          "key": "object.png",
          "sequencer": "0060XXXXXXX75X"
        }
      }
    }
  ]
}

print("RESULT:",kv['Records'][0]['s3']['bucket']['name'])

RESULT: bucket-name