jjzjj

Pyparsing

全部标签

python - 使用 Pyparsing 生成 Sql 到 Pymongo

我正在使用目前世界上“最棒”的解析库。解析。手头的问题是从给定的SQL字符串(对于选择语句)生成PyMongo字典。我使用的语法定义如下:sql_stmt=(select_key_word+('*'|column_list).setResultsName("columns")+form_key_word+table_name_list.setResultsName("collections")+Optional(where_condition,"").setResultsName("where"))这里的select_key_word、column_list等结构是有效的语法定义。并使

Python用于解析和修改文本数据-pyparsing模块教程

Python库解析地址PyParsing人们普遍认为,Python编程语言的pyparsing模块是对文本数据进行操作的一个宝贵工具。用于解析和修改文本数据的pyparsing包,简化了对地址的操作。这是因为该模块可以转换和帮助解析地址。在这篇文章中,我们将讨论PyParsing模块在处理解析以及修改时的用法。让我们看看一个使用PyParsing模块解析地址的真实例子。之后,我们将看一个更广泛的例子,以证明PyParsing如何被用来改变和解析地址数据。用简单的地址解析PyParsing让我们首先看看在Python库PyParsing的帮助下解析地址的一个基本例子。作为第一个例子,让我们看一下

python - pyparsing 和换行符

我刚开始使用pyparsing,遇到换行问题。我的语法是:frompyparsingimport*newline=LineEnd()#Literal('\n').leaveWhitespace()minus=Literal('-')plus=Literal('+')lparen=Literal('(')rparen=Literal(')')ident=Word(alphas)integer=Word(nums)arith=Forward()parenthized=Group(lparen+arith+rparen)atom=ident|integer|parenthizedfactor

python - 使用 PyParsing 解析 Snort 日志

使用pyparsing模块解析Snort日志时出现问题。问题在于分离Snort日志(它有多行条目,由空行分隔)并让pyparsing将每个条目作为一个整体来解析,而不是逐行读取并期望语法适用于每个条目行(显然不是。)我尝试将每个block转换为临时字符串,去除每个block内的换行符,但它拒绝正确处理。我可能完全走错了路,但我不这么认为(类似的形式非常适合syslog类型的日志,但这些是单行条目,因此适合您的基本文件迭代器/行处理)这是我目前拥有的日志示例和代码:[**][1:486:4]ICMPDestinationUnreachableCommunicationwithDestin

python - matplotlib 需要 pyparsing

我正在尝试使用matplotlib绘制一些数据。导入库时,出现错误:ImportError:matplotlibrequirespyparsing我使用easy_installpyparsing安装了pyparsing,但错误一直出现。我该如何解决这个问题?或者,除了matplotlib之外,还有其他方法可以使用Python绘制内容吗?编辑:sys.path返回:['','C:\\Python27\\lib\\site-packages\\spyderlib\\utils\\external','C:\\Windows\\system32\\python27.zip','C:\\Pyt

Python分隔线拆分问题

我正在努力根据可变定界符拆分文本行,并保留空字段和引用数据。例子:1,"2",three,'four,4',,"6\tsix"或作为制表符分隔的版本1\t"2"\tthree\t'four,4'\t\t"6\tsix"两者都应该导致:['1','"2"','three','four,4','',"6\tsix"]到目前为止,我已经尝试过:使用拆分,但显然未按要求处理引用的定界符。使用csv库的解决方案,但它往往具有引用所有内容或不引用任何内容的选项,而不保留原始引用。正则表达式,特别是遵循以下答案的模式,但它会删除空字段:Howtosplitbutignoreseparatorsinq

python - pyparsing - 加载 ABNF?

pyparsing可以从文件中读取ABNF而不必根据python对象来定义它吗?如果没有,是否有类似的东西(将ABNF文件加载到解析器对象中) 最佳答案 参见thisexample由SeoSanghyeon提交,它读取EBNF并对其进行解析(使用pyparsing)以创建一个pyparsing解析器。 关于python-pyparsing-加载ABNF?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

python - 使用pyparsing解析逻辑句子非常慢

我尝试使用pyparsing来解析诸如此类的逻辑表达式xFALSENOTx(x+y=10)ORNOT(zS=J)=>((P=A)ANDnot(P=1)AND(B=O))=>(S=T)((P=T)ANDNOT(K=J)AND(B=F))=>(S=O)AND((P=T)OR(kandb=>(8+z(7=a+z)我在下面写的代码似乎工作正常——但它非常慢(例如上面的最后一个例子需要几秒钟)。我是否以某种低效的方式构建了语法?可能应该使用递归而不是operatorPrecedence?有没有办法加快速度?identifier=Group(Word(alphas,alphanums+"_")+O

python - Pyparsing setParseAction 函数没有参数

我正在尝试解析一种简单的key=value查询语言。我实际上已经用一个巨大的怪物解析器完成了它,然后我第二次通过它来清理解析树。我想做的是自下而上进行干净的解析,其中包括使用集合来处理(key,val)对,从而消除冗余对等。虽然我之前已经开始工作,但我不觉得就像我完全理解为什么pyparsing会像现在这样行事,所以我做了很多变通等工作,有点与Cereal作斗争。目前,这是我的“简化”解析器的开始:frompyparsingimport*bool_act=lambdat:bool(t[0])int_act=lambdat:int(t[0])defkeyval_act(instring,

python - Pyparsing setParseAction 函数没有参数

我正在尝试解析一种简单的key=value查询语言。我实际上已经用一个巨大的怪物解析器完成了它,然后我第二次通过它来清理解析树。我想做的是自下而上进行干净的解析,其中包括使用集合来处理(key,val)对,从而消除冗余对等。虽然我之前已经开始工作,但我不觉得就像我完全理解为什么pyparsing会像现在这样行事,所以我做了很多变通等工作,有点与Cereal作斗争。目前,这是我的“简化”解析器的开始:frompyparsingimport*bool_act=lambdat:bool(t[0])int_act=lambdat:int(t[0])defkeyval_act(instring,