Python爬⾍踩坑之json报错,json包⽐较
跑爬⾍总在json.loads()的时候报错:
json.decoder.JSONDecodeError: Invalid \escape: line 1 column 3190 (char 3189)
本来以为是)传的空值,打印下确实有值。翻译了⼀下⼤概就是说在Python对象传⼊的时候字典的键少引号。解决⽅案:demjson会补全引号
今天主要对⽐三个包,json,simplejson,demjson:
simplejson
和json⽤法差不多有dump,dumps,load,loads。⽤法的话百度json相应的⽤法
demjson
encode()将Python对象成json
decode(text,encoding)解码成Python对象
encode_to_file(filename, obj, encoding='utf-8', overwrite=False, **kwargs)将Python对象编码为JSON并写⼊给定⽂件中
decode_file(filename, encoding=None, **kwargs)#对给定⽂件中的JSON进⾏解码
对⽐速度:###先感谢⼤神:
demjson:
from time import clock
obj = [u"ero", [[u"erode", u"腐蚀;侵蚀;磨损", u"0", u""], [u"erodent", u"侵蚀的, 腐蚀药", u"1", u""],
sql2000服务器配置[u"erogenous", u"唤起情欲的;性感的", u"2", u""], [u"eros", u"【希神】爱神, (eros)性爱", u"3", u""],
[u"erose", u"凹凸不平的, 【植】(叶等)有啮蚀状边缘的", u"4", u""], [u"erosion", u"侵蚀;腐蚀", u"5", u""],
[u"erosive", u"腐蚀(性)的;浸蚀(性)的", u"6", u""], [u"erotism", u"性爱倾向;性的兴奋", u"7", u""],
[u"erotogenic", u"唤起情欲的, 性感带的", u"8", u""], [u"erotomania", u"⾊情狂", u"9", u""]]]
t = clock()
import demjson
t2 = clock()
json_data = de(obj)
t3 = clock()
obj2 = demjson.decode(json_data)
t4 = clock()
print(obj == obj2)
python解析json文件print(t2 - t)
print(t3 - t2)
print(t4- t3)
True
zabbix端口号0.03165778193514972
0.0489727486156376
0.061174100642049804
simplejson:
t = clock()
黄页网站大全在线看免费import simplejson
t2 = clock()
json_data = simplejson.dumps(obj)
t3 = clock()
obj2 = simplejson.loads(json_data)
t4 = clock()
print(obj == obj2)
print(t2)
print(t3)
print(t4)
True
0.008941219257814766
0.008994640858255158
0.00904275567719485
json
t = clock()
echarts地图大小
import json
t2 = clock()
json_data = json.dumps(obj)
t3 = clock()
obj2 = json.loads(json_data)
t4 = clock()
print(obj == obj2)
print(t2)
print(t3)
print(t4)
True
0.009327199165632434
个人简历网页模板下载0.009362223923537062
0.009408569815309853
simplejson时间最短,json略次,demjson最慢。只是说了demjson有补全功能
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论