python提示jsondecodeerror是什么意思_Python爬虫解析json遇到一类JSONDecodeError的解决方案...
最近老是和json打交道,作为通过键值对保存数据的有效方式,json确实很好用,今天写一个爬虫的时候,需要提取
……
File "F:\LynWinTENsoft\Anaconda1014\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "F:\LynWinTENsoft\Anaconda1014\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "F:\LynWinTENsoft\Anaconda1014\lib\json\decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
JSONDecodeError: Expecting property name enclosed in double quotes
输入的字符串astr如下,仔细观察发现这个json的键的部分没有用引号括起来,locallist应该是"locallist"。网上查了一些解决方案,试着用第三方库demjson,在Python 3.6环境下没能正确安装。于是选择了自己写代码解决,给键的部分加上双引号(因为拿下来的json里面有单引号也有可能引发JSONDecodeError: Expecting property name enclosed in double quotes:;因此选择把所有的单引号替换为双引号)
{
locallist: [{
dispid: '1',
listname: "bj"
}, {
dispid: '1145',
listname: "shijingshan"
}, {
dispid: '6065',
listname: "lugu"
}],
infoid: "13",
lat: "39.908149",
lon: "116.24602",
comListname: "yuanyangshanshuibeiqu",
im: "//j1.58cdn.com.cn/webim/js/entry_v20180521144825.js"
}
思路就是通过字符串的replace方法将一些特征位置的值替换为有双引号的值,当然也可以用正则实现,单需要生成新字符串,这里只用了replace。把这部分封装为函数,输入为一个json字符串,代码如下:
def jsonPropt(astr):#给json内的键加上双引号
return astr.replace(' ','').replace('\n','').replace('\r','')\
.replace("'",'"').replace('{','{"').replace(':','":')\
.replace('],','],"').replace('",','","')
直接json.loads(astr)会报JSONDecodeError;经过jsonPropt()处理后能正常解析为json。
程序运行效果
python提示jsondecodeerror是什么意思_Python爬虫解析json遇到一类JSONDecodeError的解决方案...相关推荐
- python爬取网页数据流程_Python爬虫爬取数据的步骤
爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...
- python爬取网页数据软件_python爬虫入门10分钟爬取一个网站
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
- python selenium 进入新标签页_python 爬虫之selenium可视化爬虫
文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...
- python教程app 小米应用商店_Python爬虫过程解析之多线程获取小米应用商店数据...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT共享之家 ,作者IT共享者 前言 小米应用商店给用户发现最好的安卓应用和游戏,安 ...
- python爬取数据的原理_Python爬虫原理
前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...
- python提示jsondecodeerror是什么意思_python中报错json.decoder.JSONDecodeError: Expecting value:的解决...
在学习python语言中用json库解析网络数据时,我遇到了两个编译错误:json.decoder.JSONDecodeError: Expecting property name enclosed ...
- python fastapi 获取所有header信息_Python爬虫实战五之模拟登录淘宝并获取所有订单...
点击上方[Python与人工智能社区]→右上角[...]→[设为星标⭐] 经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家 ...
- python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python爬虫源码怎么使用_Python爬虫具体应该怎么使用?
1.首先,什么时候我们需要爬虫呢? 当我们需要某网站上的海量数据的时候,会发现,如果人工去把几百页,每页几十条到几百条的数据一条一条地复制下来,就太费时费力了,甚至根本就不可能.但是你做研究却需要这样 ...
- python爬取新闻后提炼_Python爬虫开发的3大难题,别上了贼船才发现,水有多深...
写爬虫,是一个非常考验综合实力的活儿.有时候,你轻而易举地就抓取到了想要的数据:有时候,你费尽心思却毫无所获. 好多Python爬虫的入门教程都是一行代码就把你骗上了"贼船",等上 ...
最新文章
- 原生js设置div隐藏或者显示_JS实现“隐藏与显示”功能(多种方法)
- Linux RPM 常用命令
- golang匿名组合
- Python技术基础知识点:OS模块的应用
- TIOBE 6月排行:C# 以微弱的优势超过了 Visual Basic .NET 的排名,再次进入 TOP 5
- 晨读,难道只是为了完成任务而读的吗?
- flex 颜色16进制对照表
- 瑞芯微和全志哪个好_瑞芯微和全志科技基本面信息简要对比和整理
- 服务器串口协议,基于TCPIP协议串口通信服务器设计说明.docx
- 一键安装Tengine服务器,TengineRPM(LTMP)构建高效、稳定、安全、易用的Web平台
- 我的听歌神器--网易云
- Linux服务器网卡驱动安装及故障排除
- 前馈神经网络——神经元
- 融资2500万美元,#Spatial从协作办公进化到元宇宙产品,#NFT创作生态
- Minimum supported Gradle version is 5.1.1. Current version is 4.8
- shim和polyfill
- Openwrt Web gui LUCI 流程浅析
- [Learn Android Studio 汉化教程]Reminders实验:第一部分(续)
- A-Frame使用方法 教程 API
- FFmpeg创作GIF表情包教程来了!赶紧说声多谢乌蝇哥?