【发布时间】:2013-06-03 14:37:32
【问题描述】:
我正在寻找 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 中访问文档直到它被截断的点。本质上,我对包装器 [] 中所有完整的 {} 部分感兴趣。
【问题讨论】:
-
你看过杰克逊的
JsonParser吗? -
谢谢,我去看看。流媒体本质上是我需要的,是的。到目前为止,我一直在使用 python 进行后期处理。
标签: java python json parsing caliper