删除密钥,仅搜索值JSON / Python 3.3.5

时间:2014-10-12 21:28:07

标签: python json dictionary key

我想只搜索字典中的值。我在我的JSONfile

中得到了这个结构
{
  "Teilnehmer0": {
    "Anzahl Begleitpersonen": "test", 
    "Betreuer": "test", 
    "Keyword": "test", 
    "Nachname": "test", 
    "Name": "test", 
    "Studiengang": ""
  }, 
  "Teilnehmer1": {
    "Anzahl Begleitpersonen": "test1", 
    "Betreuer": "test1", 
    "Keyword": "test1", 
    "Nachname": "test1", 
    "Name": "test1", 
    "Studiengang": "test1"
  }, 
  "Teilnehmer2": {
    "Anzahl Begleitpersonen": "test2", 
    "Betreuer": "test2", 
    "Keyword": "test2", 
    "Nachname": "test2", 
    "Name": "test2", 
    "Studiengang": "test2"
  }
}

那么,我现在如何同时搜索值“名称”,“Nachname”和“关键字”,当我在键中找到3个值时,删除孔键,例如,我搜索键“Teilnehmer2”中的值,我找到3个值,比我想从我的JSON文件中删除孔键Teilnehmer2?我不知道,怎么做:/

2 个答案:

答案 0 :(得分:0)

这样的事情怎么样:

d = {
  "Teilnehmer0": {
    "Anzahl Begleitpersonen": "test", 
    "Betreuer": "test", 
    "Keyword": "test", 
    "Nachname": "test", 
    "Name": "test", 
    "Studiengang": ""
  }, 
  "Teilnehmer1": {
    "Anzahl Begleitpersonen": "test1", 
    "Betreuer": "test1", 
    "Keyword": "test1", 
    "Nachname": "test1", 
    "Name": "test1", 
    "Studiengang": "test1"
  }, 
  "Teilnehmer2": {
    "Anzahl Begleitpersonen": "test2", 
    "Betreuer": "test2", 
    "Keyword": "test2", 
    "Nachname": "test2", 
    "Name": "test2", 
    "Studiengang": "test2"
  }
}

for key, value in d.items():
  name = value.get('Name')
  nachname = value.get('Nachname')
  keyword = value.get('Keyword')

  # do whatever you want with name, nachname and keyword

  del d[key]

for语句中,我们使用items()对字典中的键/值对进行迭代,对于每个值,我们得到" Name",& #34; Nachname"和"关键字"在使用del statement删除dict中的密钥之前。

这是你想要做的吗?

答案 1 :(得分:0)

如果要删除包含键"Name", "Nachname","Keyword"

的键/词组
for k,v in d.items():
    if all(x in v for x in ["Name", "Nachname","Keyword"]):
        del d[k]