【问题标题】:Update arrays in json object更新 json 对象中的数组
【发布时间】:2018-02-07 21:08:19
【问题描述】:

试图更新 json 对象中的数组。这是我的 json 对象

   {
    "api.version": "v1",
    "source": {
        "thirdPartyRef": {
            "resources": [{
                "serviceType": "AwsElbBucket",
                "path": {
                    "pathExpression": "songs/*"
                },
                "authentication": {
                    "type": "S3BucketAuthentication"
                }
            }]
        }
    }
  }

读取 json 并更新 awsId 的代码。我的要求是在身份验证部分添加 aws creds。

一旦程序成功运行,它应该是这样的

       "authentication": {
          "type": "S3BucketAuthentication",
          "awsId": "AKIAXXXXX",
          "awsKey": "MYHSHSYjusXXX"
       }

这是我的代码 args[5] 的 sn-p 是 jsonfile

with open(args[5]) as json_data:
        source = json.loads(json_data.read())
#       source['source']['category']['awsID'] = "test"
source.update( {"awsId" : "AKIAXXXXX", "awsKey": "HHSJSHS"})
print source

输出:

{u'api.version': u'v1', 'awsKey': 'HHSJSHS', 'awsId': 'AKIAXXXXX', u'source': {u'thirdPartyRef': {u'resources': [{u'path': {u'pathExpression': u'songs/*'}, u'serviceType': u'AwsElbBucket', u'authentication': {u'type': u'S3BucketAuthentication'}}]}}}

我尝试source.update( "source":{"awsId" : "AKIAXXXXX", "awsKey": "HHSJSHS"}}),它会覆盖其余的 json。

【问题讨论】:

    标签: python arrays json


    【解决方案1】:

    您要更新的数据结构被埋得很深。您无法从最高级别访问它。

    试试这个:

    import json
    with open('arg5.json') as json_data:
            source = json.loads(json_data.read())
    print source
    source["source"]["thirdPartyRef"]["resources"][0]["authentication"].update(
        {"awsId" : "AKIAXXXXX", "awsKey": "HHSJSHS"})
    

    【讨论】:

      猜你喜欢
      • 2023-02-16
      • 2020-04-14
      • 2023-02-13
      • 2019-04-01
      • 2021-09-06
      • 2018-04-12
      • 2017-10-21
      • 1970-01-01
      相关资源
      最近更新 更多