问题标签 [pyparsing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
472 浏览

python - pyparsing 可选子字段

这是pyparsing, Each, results name的延续。我在 pyparsing 方面取得了巨大的成功,但是在按子句解析 SQL order by 时我被卡住了。问题是任何字段都可以设置为升序或降序。

因此,SQL 查询可能如下所示:

我一直在摸索,我想出的最好的是:

对于类似的东西ORDER BY c asc, d desc,这匹配c我订购的第一件事,并且asc是我的订单目录,但没有到达d.

['c asc', 'd desc']只要我仍然可以进入那里,我很乐意将输出视为类似的东西columnNameList

有没有办法用pyparsing处理这个问题?我的问题不清楚吗?

0 投票
1 回答
979 浏览

python - 使用 pyparsing 进行非贪婪解析

我正在尝试用 pyparsing 解析一行。该行由许多(键,值)组成。我想得到的是(键,值)的列表。一个简单的例子:

应该导致类似: [('ids', '12'), ('fields', 'name')]

一个更复杂的例子:

应该导致类似: [('ids', '12, 13, 14'), ('fields', 'name, title')]

PS:结果列表中的元组只是一个例子。它可能是一个字典或另一个列表或其他任何东西,这并不重要。

但是到目前为止,无论我尝试过什么,我都会得到如下结果: [('ids', '12 fields')]

考虑到它也是价值的一部分,Pyparsing 正在吃下一个密钥。

这是一个示例代码:

有人能帮我吗 ?谢谢。

0 投票
1 回答
1877 浏览

python - 字典列表和 pyparsing

我正在使用 pyparsing 构建附加到列表的字典。当我这样做时,字典会被包裹在一个额外的列表中,并且还会附加一个空字典。我不知道如何解决这个问题。我想要的是[{},{},{}]。我得到了[([{}],{})]为什么来自 getDict 的代码给了我我想要的而不是 getDictParse?

输出:

0 投票
1 回答
752 浏览

python - 如何在 pyparsing 中指定令牌排序?

假设我正在解析以下行:

我想将其解析为:

我目前的 pyparsing 定义是:

发生的事情是some_words吞噬了 ' jumps',我得到了一个解析错误。如何使 pyparsing lex 将跳转作为文字标记?

0 投票
1 回答
160 浏览

python - 如何告诉 pyparsing 丢弃部分已解析字符串?

我正在为一些标记的数据编写解析器,我希望 pyparsing 在最终结果中丢弃诸如开始和结束标记之类的东西,只留下数据。

我可以这样做,还是我只需要适当地命名值并手动将它们拉出来?

0 投票
1 回答
546 浏览

python - 使用 pyparsing 有什么问题

我写这个来解析我自己的 .dotf 文件:

下面是 .dotf 文件的示例

但它有问题:

第 3 行的第 15 列是空格,不是吗?

那么,怎么了?

谢谢!

0 投票
1 回答
609 浏览

python - Pyparsing:尝试非贪婪导致无限循环

我正在尝试为RCS 文件格式创建解析器,但是,当尝试在 RCSadmin 的上下文中解析 RCSid 时,它会遇到无限循环。删除违规行

导致挂起不会发生。其上的 RCSid 成功解析字符串。有什么建议么?

这是我所拥有的:

输出(^C 挂起):

0 投票
1 回答
387 浏览

multiprocessing - pyparsing - 并行日志处理的性能技巧

我正在使用 2 个进程池来并行解析多个日志文件,

然而,它在初始运行时相当慢,大约 12 个 ~20Mb 文件约 16 分钟。

考虑到我将每 2 或 3 分钟解析一次日志新字节,在下一次迭代中不会有太大问题,但在第一次运行时肯定还有改进的余地。将日志预先分割成几个较小的拼接(这样 pyparse 就不必将整个日志分配到内存中)会加快速度吗?

我仍在双核开发 VM 上运行它,但很快将不得不迁移到四核物理服务器(我将尝试获得额外的四核 CPU),它可能需要能够管理 ~50日志。

原木的拼接,

使用 pyparse,

0 投票
1 回答
889 浏览

python - 使用 ebnf 和空格进行 pyparsing

我正在使用http://pyparsing.wikispaces.com/file/view/ebnf.py来转换我的 ebnf 定义。

ebnf def 看起来像这样:

如果我加载文件并尝试解析如下字符串:

我得到:

有人有想法/解决方案吗?

0 投票
2 回答
5795 浏览

python - ParseException:预期的文本结尾

我正在尝试使用 pyparsing 解析文本。我的功能如下图所示。首先,我构建了一个列表,其中包含我的字典中的所有术语(我网站中常用术语的字典)。然后我将我的语法设置为这个常用单词列表。然后我用语法构造 ZeroOrMore 对象。最后,我解析字符串,我应该得到在我的字符串中找到的匹配项。但是,它会抛出 ParseException ,而不是抱怨预期文本结束。

根据 pyparsing 主页http://pyparsing-public.wikispaces.com/FAQs中的常见问题解答,如果我希望解析器解析整个字符串,我应该将 StringEnd() 放入我的语法中,或者使用可选的 arg parseAll=True。如果我从我的代码中删除 parseAll=True 它可以工作,但它不会解析整个字符串。

有任何想法吗?