这是更快的方法,使用JSON解析器(蟒2.6)或正则表达式用于获得相关数据。 由于数据量是巨大的,我相信会有在时间相当大的差异,当一个方法在比较中使用到其他。
Answer 1:
假设你是问...
我相信你问如果它的速度更快反序列化,或搜索可通过正则表达式相关比赛获得一个序列化JSON字符串信息。
快速回答
在我的寻找活动一个键-值对非官方的经验,在序列化JSON对象流(鸣叫,转推或报价), 使用正则表达式鳞比,分析整个JSON对象更好 。
为什么?
这是因为微博是相当大的 ,而当你与成千上万人的工作,反序列化整个 JSON字符串和随机访问所产生的JSON对象为一个键-值对类似于使用大锤牛刀。
潜在plotholes ...
问题就出现了,但是,当按键在不同级别嵌套的重复。
例如,报价有一个名为根级属性twitter_quoted_status
其中包含鸣叫的副本这句话的对象是指。
这意味着双方的鸣叫和报价共享,如果你搜索与正则表达式序列化对象的报价将返回至少2场比赛的任何属性名称。
既然你不能和不应该依赖一个JSON对象中属性的顺序的可靠性(字典键应该是无序的!),你甚至不能依靠你想成为比赛的第一或第二(或其他)匹配,如果你到目前为止确定这个模式。
唯一的证据,我可以在瞬间与大家分享,就是取回10万个原鸣叫对象(不包括引号,也不锐推)一个键值对,我的桌面倾向于使用反序列化方法时,需要8-14秒,使用正则表达式时,0-2。
放弃
数字是近似值,从内存中。 对不起只是提供了一个快速的答案,没有测试这一点,现在张贴在我手上发现的工具。
Answer 2:
不能使用正则表达式来解析JSON。
举个例子,如果你想选择从JSON列表中的项目,你就必须算之前而来的元素个数。 这需要你知道一个元素是什么,要聪明匹配的括号等等。 很快你就会实现了一个JSON解析器,而是一个依赖于大量微小的正则表达式,可能不是很有效的。
文章来源: Using JSON or regex when processing tweets