编程语言
首页 > 编程语言> > 从文本文件中检索变量值的最佳方法 – Python – Json

从文本文件中检索变量值的最佳方法 – Python – Json

作者:互联网

参考this question,我有一个类似但不一样的问题..

在我的路上,我将有一些文本文件,结构如下:

var_a: 'home'
var_b: 'car'
var_c: 15.5

我需要python读取文件,然后创建一个名为var_a的变量,其值为’home’,依此类推.

例:

#python stuff over here
getVarFromFile(filename) #this is the function that im looking for
print var_b
#output: car, as string
print var_c
#output 15.5, as number.

这是否可能,我的意思是,即使保留var类型?

请注意,我对文本文件结构有完全的自由,如果我提议的那个不是最好的,我可以使用我喜欢的格式.

编辑:ConfigParser可以是一个解决方案,但我不喜欢它,因为在我的脚本中我将有时参考文件中的变量

config.get("set", "var_name")

但我喜欢的是直接引用变量,就像我在python脚本中声明的那样……

有一种方法可以将文件导入为python字典吗?

哦,最后一点,请记住,我不确切知道文本文件中有多少变量.

编辑2:我对stephan的JSON解决方案非常感兴趣,因为通过这种方式,可以使用其他语言(PHP,然后通过AJAX JavaScript)简单地读取文本文件,但是在执行该解决方案时我失败了:

#for the example, i dont load the file but create a var with the supposed file content
file_content = "'var_a': 4, 'var_b': 'a string'"
mydict = dict(file_content)
#Error: ValueError: dictionary update sequence element #0 has length 1; 2 is required
file_content_2 = "{'var_a': 4, 'var_b': 'a string'}"
mydict_2 = dict(json.dump(file_content_2, True))
#Error:
#Traceback (most recent call last):
#File "<pyshell#5>", line 1, in <module>
#mydict_2 = dict(json.dump(file_content_2, True))
#File "C:\Python26\lib\json\__init__.py", line 181, in dump
#fp.write(chunk)
#AttributeError: 'bool' object has no attribute 'write'

我可以在JSON格式中遇到什么样的问题?
而且,我如何在文本文件中读取JSON数组,并在python dict中转换它?

P.S:我不喜欢使用.py文件的解决方案;我更喜欢.txt,.inc,.对一种语言没有限制.

解决方法:

使用JSONPyYAML将文件加载到字典the_dict中(请参阅此步骤的JSON或PyYAML文档,两者都可以存储数据类型)并将字典添加到您的全局字典中,例如使用globals().update(the_dict).

如果你想要它在本地字典中(例如在函数内),你可以这样做:

for (n, v) in the_dict.items():
    exec('%s=%s' % (n, repr(v)))

只要使用exec是安全的.如果没有,您可以直接使用字典.

标签:python,variables,json,text-files
来源: https://codeday.me/bug/20190926/1820794.html