从外部.json文件获取变量Python

时间:2018-03-09 15:20:23

标签: javascript python python-2.7

我需要帮助

我想从本地目录中的外部.json文件接收变量 使用python27

(导入无效)

我想将变量存储在.json中,如下所示

value1 = "this_is_value1"
value2 = "this_is_value2"
value3 = "this_is_value3"

并将它们用于脚本中。

如果我可以达到.json包含

的程度
value1 = "this_is_value1"

和我的.py包括

print(value1)

带输出

>>>this_is_value1

我可以从那里拿走它

我的结束任务

我的想法是我需要更改另一个.yaml文件的特定部分,这个程序需要采取像(ID,System_id,IP)这样的变量,对于这种情况我需要一个.json我可以改变哪个python27脚本然后从中提取信息以更改.yaml文件。

我已经完成了这部分,只需要做这部分

我是否研究过这个问题?

简而言之,是的。

然而,这些答案使用.py或其他文件类型。

我已经尝试导入该文件,但由于它需要位于脚本旁边,我无法使用 import

其他anwser只是没有提供有关他们如何解决问题的信息。

4 个答案:

答案 0 :(得分:0)

我通常喜欢用方法或函数来控制这个过程。这是我经常使用的代码片段,它将读取您已经显示的文本文件的格式:

class MainApp(object):

    def __init__(self, config_file):
        # Initialization stuff from a configuration file.
        self.readConfigFile(config_file)

    def readConfigFile(self, file):
        try:
            with open(file, 'r') as cfg:
                lines = list(cfg)
            print("Read", len(lines), "lines from file", file)
            # Set configured attributes in the application
            for line in lines:
                key, value = line.split('=')
                setattr(self, key.strip(), value.strip())
        except:
            print('Configuration file read error')
            raise

if __name__ == '__main__':
    # Create an instance of the application.
    # It will read the configuration file provided here.
    app = MainApp('myconfig.txt')
    # Now you can access the attributes of the class (read from config file)
    print(app.value1, app.value2, app.value3)

答案 1 :(得分:0)

使用json格式的文件(例如“my_file.json”),例如:

import json

with open("my_file.json", "r") as f:
    my_dict = json.load(f)
print(my_dict["x"])

然后在Python中:

this is x

收率:

browser.runtime.sendMessage('d089938d-ba63-4c40-98ab-b8515db1bbca', { greeting: "screenshot-please" }, function (response) {
    localStorage.setItem("image", response.farewell);
});
var image = localStorage.getItem("image");

答案 2 :(得分:0)

这应该有效:

>> string1 = 'value1 = "this_is_value1"'

>> exec(string1)

>> print(value1)
"this_is_value1"

答案 3 :(得分:0)

如果您真正需要的是.txt文件,那么我建议您查看文档: https://docs.python.org/3/tutorial/inputoutput.html 转到部分:7.2读取和写入文件

基本上,您需要的是:

lines = [] # for further data manipulation
file = open("c:\path\to\your.txt", "r")
for line in file:
    lines.append([line.split("=")])
file.close()

现在,如果你的.txt栏中有=" foo" 然后在行列表中,您可以执行以下操作:

lines[0][0] # output "bar"
lines[0][1] # output "foo"

当然还有更多的方法,但这只是基本的想法。