2016-05-16 131 views
-2

需要您的帮助来寻找解决方案。我有以下jsonpython json匹配多个并替换

[{“source”:“AA”,“target”:“BB”,“metric”:“10”,“local_interface”:“100”,“remote_interface”:“200” }, {“source”:“AA”,“target”:“BB”,“metric”:“10”,“local_interface”:“111”,“remote_interface”:“222”}, {“source” : “BB”, “目标”: “AA”, “指标”: “10”, “local_interface”: “200”, “remote_interface”: “100”}]

目标是:

  • 获取作为源/目标/本地接口的第一个元素(即:模式)
  • 搜索剩余的元素东西匹配源= pattern.target,目标= pattern.source,remote_interface = pattern.local_interface
  • 从json中删除元素。

希望这是有道理的。

+0

那么你的代码在哪里,它的问题究竟是什么? – jonrsharpe

回答

0

你是在追求这么简单的东西吗?

j = [{"source":"AA","target":"BB","metric":"10", 
"local_interface":"100","remote_interface":"200"}, 
{"source":"AA","target":"BB","metric":"10", 
"local_interface":"111","remote_interface":"222"}, 
{"source":"BB","target":"AA","metric":"10", 
"local_interface":"200","remote_interface":"100"}] 

s = j[0]["source"] 
print(s) 
t = j[0]["target"] 
print(t) 
li = j[0]["local_interface"] 
print(li) 

print('Find source ==', t) 
for i in range(1,3): 
    if j[i]['source'] == t: 
    print("Is match:", j[i]) 

print() 

del(j[1]) 
print("after deletion:", j) 
+0

thx Jorgen。我需要检查所有三个值。我猜如果j [i] ['source'] == t并且j [i] ['target'] == s和j [i] ['remote_interface'] == li:将会起作用 – Cmarv

+0

当然可以。而要删除的数组元素是i中的索引 – Jorgen