我正在寻找 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\\{
处的结果文档拆分成 block ,然后仅解析这些 block 直到最后一个失败。但这是一个令人讨厌的 hack,并且对卡尺输出的 future 变化不稳健。我也尝试使用 raw_decode
,但它仍然需要完整的文档,并且不会在每个 },
返回有意义的结果。
我正在寻找类似于例如XML pull,它允许我在基于事件的 API 中访问文档直到它被截断的位置。本质上,我对包装器 []
中所有完整的 {}
部分感兴趣。
最佳答案
关于java - Python 或 Java 中强大的 json 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899321/