使用python提取输出

2024-05-23 19:23:35 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从输出中提取所需的数据并将其保存到变量中

这是我的节目:

import commands

cmd = curl -v -k -H "Content-Type: application/json" -X GET -u hitman:hitman <https://test.com:8181/v1/config/sipregistrar

result = commands.getoutput(cmd)
print result

现在运行程序:

python测试25.py

输出:

^{pr2}$

从这个输出中,我需要的参数:

{"sip_domains":{"prefix":[{"name":""}],"domain":[{"name":"k200.com"},{"name":"zinga.com"},{"name":"rambo.com"}]},"sip_security":{"level":2},"sip_trusted_hosts":{"host":[]},"sip_proxy_mode":{"handle_requests":1}}

如何提取上述内容并将其保存到变量中?在


Tags: 数据nameimportcmdcomjsonapplicationtype
2条回答

如果你只需要一个这些参数的字符串,而你的所有输出总是遵循这个模式,而你的[data not show]中没有任何东西会破坏这一点,你可以试试。。。在

params = results[results.find('{"'):]

这部分结果从{“sip_domains”开始 不过,如果你最后有另一个{“手,这将打破。在

我已经将其清理干净,删除了eval,并使用JSON转换了结果,以确保其安全:

import json
from pprint import pprint

output = '''[data extract]Set-Cookie: JSESSIONID=12buplms5odzt;Path=/config
Transfer-Encoding: chunked
Closing connection #0
 SSLv3, TLS alert, Client hello (1):
} [data not shown]
{"sip_domains":{"prefix":[{"name":""}],"domain":[{"name":"k200.com"},{"name":"zinga.com"},{"name":"rambo.com"}]},"sip_security":{"level":2},"sip_trusted_hosts":{"host":[]},"sip_proxy_mode":{"handle_requests":1}}'''

output = json.loads( output.split("\n")[-1] )

pprint( output )

变量output现在包含以下字典:

^{pr2}$

这只是一个替代方案,@jcfollower从我这里得到了一个简洁有效的解决方案。在

相关问题 更多 >