我正在寻找Python或Java中的健壮的 json解析器(到目前为止,我一直在使用Python,但是当我用它来分析Java基准时,使用Java是一个合理的选择。)
对于截断和不完整的文档非常强大。
原因是我目前正在使用caliper进行某些(微)基准测试,而基准测试仍在运行(或者如果我提前取消它),输出文件不是完整的JSON文档。 json
和simplejson
都不会读取这些在某些时候被截断的文件。
(我不喜欢Caliper网络界面,因为它很慢,不能扩展到大型实验集,并且很多数据无法提交,然后在运行中丢失。)
粗略地说,文件看起来像这样:
[
{
// first record, in multiple lines
},
{
// second record, in multiple lines
},
{
// truncated record.
现在,我正在使用一个讨厌的hack,它使用caliper当前生成的已知缩进将},\n\ \ {
的结果文档拆分成块,然后只解析这些缩进直到最后一个失败。但这是一个讨厌的黑客攻击,并且对于卡钳输出的未来变化并不稳健。我也尝试使用raw_decode
,但它仍然需要完整的文档,而不会在每个},
返回有意义的结果。
我正在寻找类似于例如的API XML pull,它允许我在基于事件的API中访问文档,直到它被截断。基本上,我对包装器{}
内的所有完整[]
部分感兴趣。