我想从本地目录中的外部.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只是没有提供有关他们如何解决问题的信息。
答案 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"
当然还有更多的方法,但这只是基本的想法。