如何使用 python 删除字典对象? [复制]

Posted

技术标签:

【中文标题】如何使用 python 删除字典对象? [复制]【英文标题】:How can I delete a dictionary object using python? [duplicate] 【发布时间】:2021-03-27 07:46:20 【问题描述】:

我有一本字典,我正试图删除一个特定的对象。


  "authorizationQualifier": "00",
  "testIndicator": " ",
  "functionalGroups": [
    
      "functionalIdentifierCode": "SC",
      "applicationSenderCode": "6088385400",
      "applicationReceiverCode": "3147392555",
      "transactions": [
        
          "name": null,
          "transactionSetIdentifierCode": "832",
          "transactionSetControlNumber": "000000001",
          "implementationConventionReference": null,
          "segments": [
            
              "BCT": 
                "BCT01": "PS",
                "BCT03": "2",
                "id": "BCT"
                     
             
           ]
         
       ]
     
   ]

我正在尝试删除对象的“段”列表,同时保留功能组和事务列表。

我试过了,

ediconverted = open("converted.json", "w")
with open('832.json','r') as jsonfile:
    json_content = json.load(jsonfile)

for element in json_content:
    element.pop('segments', None)

with open('converted.json', 'w') as data_file:
    json_content = json.dump(json_content, data_file)

【问题讨论】:

请发布您尝试过的方式。 那不是字典;这是一个 JSON 块。 我使用loads() 将json 文件反序列化为字典。然后我可以通过使用 - shortdata = data["functionalGroups"][0]["transactions"][0] (数据是反序列化的 json 文件)来获取每个列表键;但是我不清楚如何删除段列表。我试过 .pop 没有运气 【参考方案1】:

对于这个特定的结构,我们将其命名为 d,以下将起作用:

del d["functionalGroups"][0]["transactions"][0]["segments"]

【讨论】:

【参考方案2】:

假设您要为所有组和事务删除它:

for g in data["functionalGroups"]: 
    for d in g["transactions"]: 
        d.pop("segments")
        # or, if segments is an optional key
        d.pop("segments", None)

您可以使用del d["segments"],因为它不返回任何内容,因此开销会少一些,但它不提供平滑处理"segments" 不存在的情况的选项(dict.pop 也是如此)。

【讨论】:

这个也做了,谢谢!

以上是关于如何使用 python 删除字典对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python Flask:如何将字典对象转换为 json? [复制]

如何将 python 对象(如字典)分配给 pandas 列

Python字典创建、基本操作以及常用方法

Python:如何从熊猫数据框创建字典? [复制]

在python中按值删除字典项的最佳方法是啥? [复制]

python 列表和字典的引用与复制(copy)