【问题标题】:Python: Remove one of two JSON elements if they have the same text [closed]Python:如果两个 JSON 元素具有相同的文本,则删除它们之一[关闭]
【发布时间】:2019-01-04 01:48:29
【问题描述】:

如果已经有一个具有相同文本的 JSON 元素,我该如何删除?

【问题讨论】:

  • 到目前为止您尝试过什么?您能否分享您的代码示例,以便 SO 的人员可以更好地为您提供帮助?
  • JSON 长什么样子?你转换成什么了吗?您介意在此处发布您的尝试吗

标签: python json


【解决方案1】:

我假设您想要实现的是删除具有重复值的 JSON 条目。

请注意,在 Python 中,JSON 元素与字典相同。因此,您可以遍历字典并创建一个不包含重复项的新字典,如下所示:

result = {}

for key,value in input_raw.items():
    if value not in result.values():
        result[key] = value

print(result)

取自Removing Duplicates From Dictionary。有关更多信息/替代解决方案,请参阅该链接。

对于输入:

{
  'key1':'a',
  'key2':'b',
  'key3':'b',
  'key4':'c'
}

这成功产生了输出:

{
  'key1':'a',
  'key2':'b',
  'key4':'c'
}

【讨论】:

  • 如果值是嵌套的怎么办?
  • @Idlehands 嵌套它们是什么意思?您能否提供一些示例输入。
  • @Idlehands {1:{1:'b'}, 2:{1:'b'}} 将产生带有此代码的 {1:{1:'b'}},但 {1:{1:'b'}, 2:{1:'c'}} 将产生相同的字典。如果我正确理解了这个问题,那是预期的行为。
  • 我的意思是问题不清楚,您的答案有某些假设,应该通过问题来澄清。如果json{1: 'b', 2: {3: 'b'}} 那么会发生什么?这些是对问题的澄清。
  • 你是对的。在我的回答中,我假设 OP 想要删除彼此相等的重复值。需要澄清一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 2019-11-08
  • 1970-01-01
  • 2022-08-11
  • 1970-01-01
  • 2019-09-08
相关资源
最近更新 更多