python – 将结构化文本解析成dict
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 将结构化文本解析成dict,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2032字,纯文字阅读大概需要3分钟。
内容图文
![python – 将结构化文本解析成dict](/upload/InfoBanner/zyjiaocheng/721/a8a4d65c552a41edab49d903f91f77dc.jpg)
我有配置文件结构像简化的C语法,例如:
Main { /* some comments */
VariableName1 = VariableValue1;
VariableName2 = VariableValue2;
SubSection {
VariableName1 = VariableValue1; // inline comment
VariableName2 = VariableValue2;
}
VariableName3 = "StriingValue4";
}
节可以递归嵌套.
如何以干净和“诡异”的方式将该文件解析为dict?
[编辑]
好的,我已经找到了pyparsing模块:)但也许有人可以告诉你如何在没有它的情况下做到这一点.
[EDIT2]
由于好奇,我想知道将来怎么写我认为手工简单的任务.
解决方法:
使用像SimpleParse这样的解析器,只需输入EBNF定义即可.
你有某种BNF记录的格式,不是吗?如果没有,你可以告诉下一个天才发明另一种配置格式,而不是使用json,xml,yaml或xml他无权重新发明轮子,除非他可以使用EBNF指定语法.
如果你不熟悉EBNF,可能需要一些时间来编写语法,但它付出了代价.它将使您的代码记录良好,坚如磐石,易于维护.
有关其他选项,请参阅有关Language Parsing的python wiki.
如果你试图使用str.split或正则表达式来进行某些特技表演,那么维护这段代码的每个其他开发人员都会诅咒你.
更新:
我突然意识到,如果用SectionName替换SectionName:,; with,并用一对花括号括起主要部分,格式为will likely to be valid json.
"Name" = JSON Grammar
"Author" = Arsène von Wyss
"Version" = 1.0
"About" = 'Grammar for JSON data, following http://www.json.org/'
! and compliant with http://www.ietf.org/rfc/rfc4627
"Start Symbol" = <Json>
"Case Sensitive" = True
"Character Mapping" = 'Unicode'
! ------------------------------------------------- Sets
{Unescaped} = {All Valid} - {&1 .. &19} - ["\]
{Hex} = {Digit} + [ABCDEFabcdef]
{Digit9} = {Digit} - [0]
! ------------------------------------------------- Terminals
Number = '-'?('0'|{Digit9}{Digit}*)('.'{Digit}+)?([Ee][+-]?{Digit}+)?
String = '"'({Unescaped}|'\'(["\/bfnrt]|'u'{Hex}{Hex}{Hex}{Hex}))*'"'
! ------------------------------------------------- Rules
<Json> ::= <Object>
| <Array>
<Object> ::= '{' '}'
| '{' <Members> '}'
<Members> ::= <Pair>
| <Pair> ',' <Members>
<Pair> ::= String ':' <Value>
<Array> ::= '[' ']'
| '[' <Elements> ']'
<Elements> ::= <Value>
| <Value> ',' <Elements>
<Value> ::= String
| Number
| <Object>
| <Array>
| true
| false
| null
内容总结
以上是互联网集市为您收集整理的python – 将结构化文本解析成dict全部内容,希望文章能够帮你解决python – 将结构化文本解析成dict所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。