解析Java程序的Python配置文件
我在谷歌上没有发现任何类似的东西,我想知道是否有一种更快的方法可以做到以下几点: 我需要解析用Python编写的Java程序的构建脚本。更具体地说,我想解析硬编码到这些构建脚本中的字典 例如,这些脚本包含以下条目:解析Java程序的Python配置文件,java,python,parsing,config,Java,Python,Parsing,Config,我在谷歌上没有发现任何类似的东西,我想知道是否有一种更快的方法可以做到以下几点: 我需要解析用Python编写的Java程序的构建脚本。更具体地说,我想解析硬编码到这些构建脚本中的字典 例如,这些脚本包含以下条目: config = {} config["Project"] = \ { "Name" : "ProjName", "Version" : "v2",
config = {}
config["Project"] = \
{
"Name" : "ProjName",
"Version" : "v2",
"MinimumPreviousVersion" : "v1",
}
def actualCode ():
# Some code that actually compiles the relevant files
(实际的编译是通过调用另一个程序完成的,这个脚本只是设置了我想要提取的所需选项)。
例如,我想提取“Name”=“ProjName”等等
我知道ConfigParser库是Python的一部分,但它是为.ini文件设计的,因此在我所说的构建脚本中可能出现的实际Python代码存在问题(抛出异常和崩溃)。因此,使用这个库意味着我必须首先读取其中的文件,并删除ConfigParser将反对的文件行
有没有比将配置文件作为普通文件读入并解析它更快的方法?我正在寻找能做到这一点的图书馆。我不太介意这些库使用哪种语言。试试看。它是用Java写的,你用。。。Java也是
使用堆栈存储元素等;它的解析器类是泛型的,您可以从中得到最终结果。我试图解决类似的问题。我将目录转换为JSON对象,这样我就可以以最简单的方式使用JSON对象查询密钥。这个解决方案对我来说适用于多级键值对。我 这是算法
config(.*?\\[(.*?\\]
expression.replace('(', '[')
.replace(')', ']')
.replace('\\', ' ')
这是您的JSON对象。您可以按自己的方式使用它。我知道这是一个老问题,但我发现了一个非常有用的Java配置解析器库 它提供了一个简单的函数
getValue(“sectionName”、“optionName”)
,允许您获取节内选项的值
[部门名称]
optionName=optionValue
您对字典的值和键有任何限制吗?如果所有的键/值都是字符串,那么您可以很容易地用正则表达式解析内容。@Bakuriu构建脚本中不仅仅包含字典(还有普通代码),我想从构建脚本中提取一些字典