哪种方法更快,使用 JSON 解析器(python 2.6)或正则表达式来获取相关数据。由于数据量巨大,我认为使用一种方法与其他方法相比在时间上会有很大差异。
假设你在问什么......
我相信您会问,通过反序列化序列化 JSON 字符串或通过正则表达式搜索相关匹配项来从序列化 JSON 字符串获取信息是否更快。
快速回答
根据我在序列化 JSON 中的活动流对象(推文、转发或引用)中查找单个键值对的非官方经验,使用正则表达式比解析整个 JSON 对象更好.
Why?
这是因为推文是相当大的,当您处理数十万个时,反序列化entireJSON 字符串并随机访问单个键值对生成的 JSON 对象就像使用大锤敲开坚果一样。
潜在的剧情漏洞...
然而,当键在不同的嵌套级别重复时,就会出现问题。
例如,引号有一个根级别属性,称为twitter_quoted_status
其中包含此引用对象引用的推文的副本。
这意味着any属性名称共享者推文和引用如果您使用正则表达式搜索序列化的报价对象,将返回至少 2 个匹配项。
由于您不能也不应该依赖 JSON 对象中属性顺序的可靠性(字典键应该是无序的!),您甚至不能依赖您想要的第一个或第二个(或其他)匹配如果您到目前为止已经识别出该模式,则匹配。
目前我可以与您分享的唯一证据是,要从 100,000 个原始推文对象(没有引用或转发)中检索单个键值对,在使用反序列化方法时,我的桌面往往需要 8-14 秒,并且使用正则表达式时为 0-2。
免责声明
数字是近似值并且来自记忆。抱歉,只是提供一个快速答案,目前我没有工具来测试此问题并发布调查结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)