我正在寻找Python 或 Java 中强大的json 解析器(到目前为止,我一直在使用 Python,但是当我使用它来分析 Java 基准测试时,使用 Java 是一个合理的选择。)
对截断和不完整的文档具有鲁棒性。
原因是我目前正在将caliper用于一些(微)基准测试,并且当基准测试仍在运行时(或者如果我过早取消它),输出文件将不是完整的 JSON 文档。既json
不会也simplejson
不会读取这些在某些时候基本上被截断的文件。
(我不喜欢 Caliper Web 界面,因为它很慢,不能扩展到大型实验集,而且很多数据无法提交,然后在运行中丢失。)
大致上,这些文档如下所示:
[
{
// first record, in multiple lines
},
{
// second record, in multiple lines
},
{
// truncated record.
现在,我正在使用一个讨厌的 hack,它使用 caliper 当前产生的已知缩进将结果文档拆分},\n\ \ {
为块,然后只解析这些,直到最后一个失败。但这是一个令人讨厌的黑客行为,并且对未来卡尺输出的变化并不稳健。我也尝试过使用raw_decode
,但它仍然会期望完整的文档,并且不会在每个},
.
我正在寻找一个类似于 XML pull 的 API,它允许我在基于事件的 API 中访问文档直到它被截断的点。本质上,我对{}
wrapper 中的所有完整部分感兴趣[]
。