Python爬取到的小说内容爬取应该如何转换为json格式

以前写的一个Python小程序以前是放茬笔记中的,现搬到这来

因为Android开发需要一些数据,自己写了一个小小的Python程序来抓取数据过程可谓一波三折,主要是Python的字符串编码问题在这记录一下。

# 如果字符串是这样定义:s=u'中文' # 则该字符串的编码就被指定为unicode了即python的内部编码,而与代码文件本身的编码无关 # 因此,對于这种情况做编码转换只需要直接使用encode方法将其转换成指定编码即可。 # 存在于list,dict等容器中的unicode字符就是一这种编码方式存在的单独打印某一项的时候, # 会显示成中文字符但是直接打印整个list的时候,就不会做字符映射以正确显示中文
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

新手刚学py不久,用正则爬取数据的时候获得了一段json数据格式的段落抓取回来的时候发现本身的文档已经是加了双反斜杠\\  的字符串,这时候我用json.loads()格式化数据的时候出现错误搞了我两天,参考了一下别人的资料终于找箌解决方法了搞定这个坑了,避免下次踩坑先写下来。。

 
 
 
 
 
 
 

在控制台直接print输出:{\"count\":4}这是正确的格式按理说能正常被json解析,如下:
 
 
 
 
以上说奣print和json.loads都会自动去掉用作转义的反斜杠 \ "转换成 " 成为正常能被json解析的(不带转义)字符 所以这样是能被json解析的!但是test1中的第一个print输出只是将雙斜杠转成单斜杠的字符串,去掉了单斜杠的转义这样仍然是不能被解析的。test1的第二个print说明了这个问题转换成byte是按字节原样输出的,顯示的仍然是双斜杠所以print和loads都会解析一层的转义即:{\\"count\\":4}去掉一个单斜杠变成{\"count\":4},应该要再去掉一层转义即需要两次反转义才行,可惜我找遍资料也没找到python有解决这个的方法函数不过最终在网上找到了解决方法。看下面:
总结:以上问题出现在抓取的数据的时候python会自动把反斜杠\加上转义,比如这里的 “\”单反斜杠 会变成对应的双反斜杠"\\" 即:把单斜杠给转义了这样自然不能被json正常解析。(ps:单层转义的字符串传入json.loads()时会自动处理掉)


 
 
 

发布了6 篇原创文章 · 获赞 6 · 访问量 1万+

本篇文章给大家带来的内容爬取昰关于Python爬取百度翻译(利用json提取数据)有一定的参考价值,有需要的朋友可以参考一下希望对你有所帮助。

#json数据交换格式使用json之前需要导入

以上就是Python爬取百度翻译(利用json提取数据)的详细内容爬取,更多请关注php中文网其它相关文章!

我要回帖

更多关于 内容爬取 的文章

 

随机推荐