我有下一个json文件:
{ "data": [ { "{#SQP}": "/usr/local/squid/bin/squid", "{#SQP_ID}": "squid1", "{#SQP_ARG}": "-D -C -F -f /etc/squid1.conf", "{#SQP_PT}": "1111", "{#SQP_CONFIG}": "/etc/squid1.conf" }, { "{#SQP}": "/usr/local/squid/bin/squid", "{#SQP_ID}": "squid2", "{#SQP_ARG}": "-D -C -F -f /etc/squid2.conf", "{#SQP_PT}": "2222 3333", "{#SQP_CONFIG}": "/etc/squid2.conf" }, { "{#SQP}": "/usr/local/squid/bin/squid", "{#SQP_ID}": "squid3", "{#SQP_ARG}": "-D -C -F -f /etc/squid3.conf", "{#SQP_PT}": "4444", "{#SQP_CONFIG}": "/etc/squid3.conf" } ]}
python脚本正在读取此文件:
#!/usr/bin/env python
import json
import re
import sys
import unittest
import StringIO
def loadSquidPorts(discoveryJson, spJson):
jsn = json.load(discoveryJson)
for dt in jsn['data']:
try:
id = dt['{#SQP_ID}']
port = dt['{#SQP_PT}']
spJson['data'].append({'{ID}': id, '{#PORT}': port})
except Exception as err:
pass
def printSquidPortDiscovery(discFilespec, dumpDest=sys.stdout):
portJson = {'data': []}
try:
with open(discFilespec) as discJson:
loadSquidPorts(discJson, portJson)
except:
pass
json.dump(portJson, dumpDest)
if __name__ == '__main__':
printSquidPortDiscovery('/root/file.json')
python脚本的输出如下:
{
"data": [
{
"{#ID}": "squid1",
"{#PORT}": "1111"
},
{
"{#ID}": "squid2",
"{#PORT}": "2222 3333"
},
{
"{#ID}": "squid3",
"{#PORT}": "4444"
}
]
}
如果有几个端口值,我需要这个python脚本-分别打印它们,例如:
{
"data": [
{
"{#ID}": "squid1",
"{#PORT}": "1111"
},
{
"{#ID}": "squid2",
"{#PORT}": "2222",
"{#PORT}": "3333"
},
{
"{#ID}": "squid3",
"{#PORT}": "4444"
}
]
}
你能帮我一下吗?你知道吗
而不是这一行:
用途:
它将为您提供端口ID作为列表:
如果不需要列表,请尝试使用带有编号后缀的键:
这种情况下的输出:
相关问题 更多 >
编程相关推荐