【raise JSONDecodeError(“Extra data“, s, end)】
前因
原本想爬取点股票的数据分析分析,然后就遇到了这个坑,已经有段时间没再接触python,语法都差不多忘光了,所幸python简单的东西不难。
教程
python requests.get(…).json()方法获取失败
错误日志:
Traceback (most recent call last):File "D:/E/code/python/stock/demo/demo.py", line 66, in <module>getStock()File "D:/E/code/python/stock/demo/demo.py", line 45, in getStockhtml_data = response.json()File "D:\E\code\python\stock\lib\site-packages\requests\models.py", line 899, in jsonreturn complexjson.loads(File "D:\E\program\python3.8\lib\json\__init__.py", line 357, in loadsreturn _default_decoder.decode(s)File "D:\E\program\python3.8\lib\json\decoder.py", line 340, in decoderaise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 5 (char 4)
明明我用浏览器可以得到json数据,为什么这里就不行了呢?
这实在令人恼火,百度了很久,也用Google了,仍然没有找到理想的解决方法。
于是通过response信息,确定问题所在
print(response.url)print("\n")print(response.cookies)print("\n")print(response.content)print('\n')print(response.ok)
输出:
https://xueqiu.com/service/v5/stock/screener/quote/list ...<RequestsCookieJar[<Cookie acw_tc=2760779516447594541566859ecab3dd6b548269d36d7bc8dc9ff0123144b9 for xueqiu.com/>]>b'403 Forbidden. Your IP Address: 112.48.x.x .'False
这就json一直解析的不成功的表象。
于是就产生了这样的疑问,其实不是Json的问题。
Python问题-requests库爬虫报403
就是访问需要添加header的User-agent
源码放送:
import requests
import csv
import json
import time
import datetimeurl = 'https://xueqiu.com/service/v5/stock/screener/quote/list?'
headers = {'Content-Type': 'application/json; charset=utf-8','User-Agent': 'xxxx',
}def getBaidu():rq = requests.get('http://httpbin.org/get')print(rq.json())def getStock():# for i in 20:t = time.time()nowTime = lambda: int(round(t * 1000))print(nowTime()); # 毫秒级时间戳,基于lambdaparams = {'page': 1,'size': 1,'order': 'desc','order_by': 'amount','exchange': 'CN','market': 'CN','type': 'sha','_': nowTime}response = requests.get(url=url, params=params, headers=headers)print(response.url)print("\n")print(response.cookies)print("\n")print(response.content)print('\n')print(response.ok)html_data = response.json()data_list = html_data['data']['list']for i in data_list:dit = {}dit['股票代码'] = i['symbol']dit['股票名字'] = i['name']dit['当前价'] = i['current']dit['涨跌额'] = i['chg']dit['涨跌幅/%'] = i['percent']dit['年初至今/%'] = i['current_year_percent']dit['成交量'] = i['volume']dit['成交额'] = i['amount']dit['换手率/%'] = i['turnover_rate']dit['市盈率TTM'] = i['pe_ttm']dit['股息率/%'] = i['dividend_yield']dit['市值'] = i['market_capital']print(dit)if __name__ == '__main__':# getBaidu()getStock()
这里的User-Agent 自己查一下就知道了。方法其实也不难,复制一下请求信息就知道了。
包括请求参数啥的,这里其实基本上都有,在学校时学网站开发时竟然没发现,可惜可惜。
【raise JSONDecodeError(“Extra data“, s, end)】相关推荐
- raise JSONDecodeError(“Extra data“, s, end) json.decoder.JSONDecodeError: Extra data: line 1 column
raise JSONDecodeError("Extra data", s, end) json.decoder.JSONDecodeError: Extra data: line ...
- simplejson.scanner.JSONDecodeError: Extra data: line 1 column 22089 - line 1 column 22090
我的代码 page = requests.get("http://www.sogou.com/kmap?query=%E9%99%88%E5%A5%95%E8%BF%85&from= ...
- Json错误JSONDecodeError: Extra data解决方案
(作者:www.data-master.net 数据极) 问题描述: 使用以下代码转换字符串为json格式时,出现JSONDecodeError: Extra data的错误: import json ...
- (已解决)json.decoder.JSONDecodeError: Extra data: line 1 column 47 (char 46)
问题描述 *json.load(file)*出现上述错误. 原因是file中包含不止一条记录.json.load函数只能解析一条记录. 解决方案 将多条记录强行封装为一条,便可读取. Referenc ...
- raise JSONDecodeError(“Expecting value“, s, err.value) from None
数据转换成json对象时报错 [提示出错] File "C:\Users\14062\AppData\Local\Programs\Python\Python37-32\lib\json\d ...
- 【内容详细、源码详尽】MySQL极简学习笔记
碎话 本人整理资料时,发现了之前学习MySQL时做的笔记.笔记内容做的蛮好的,值得分享给大家.所以根据自己的学习能力.精力.空余时间情况,把笔记整理成了四天的学习章节. 每一个DQL.DML.DDL语 ...
- 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins
目录 [本文简介看之前请详细的看完介绍] 本文是全网首发的[全栈接口测试进阶系列教程]jmeter接口测试工具从入门到入职, 接口系列包含 接口测试系列包含所有的接口测试工具入门到入职,如果你喜欢的话 ...
- 【VMware vRealize Suite 2019 部署系列】- 「2」 – 部署 vRealize Operations 8.1
[VMware vRealize Suite 2019 部署系列]- 「2」 – 部署 vRealize Operations 8.1 vRealize Operations 8.x 小旭 10个 ...
- 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据
前文[逗老师带你学IT]PRTG监控通过Python+TCP Modbus获取温湿度传感器数据中我们讲了如何通过Python读取支持TCP Modbus的传感器数据.本章我们讲解下如何读取Modbus ...
最新文章
- 什么样的文献有html阅读,有关html的参考文献
- ssl charles 参数看不到_SSL证书=安全?小心,别错漏了TA……
- android使用java library module时初始化OkHttpClient时报错 ClassDefNotFoundError之类的
- div居中 边框设置 文字行高设置
- java代码数据库添加操作_java连接数据库后进行更新插入操作
- 读债务危机0824:随笔
- C/C++结构体struct 与结构体数组和枚举型enum的结合使用
- win10环境下如何给visual studio 2013永久配置opencv3.1.0环境
- 全文搜索Apache Lucene简介
- 谨防代理木马和怕米释放有毒程序
- C++11 新特性 —— 关键字noexcept
- 旅游新时尚:点点鼠标就可“周游世界”
- java 复制Map对象(深拷贝与浅拷贝)
- OpenCV-图像处理(10、膨胀与腐蚀)
- FFmpeg 视频添加水印
- highcharts 开发笔记
- linux中文件颜色,蓝色,白色等各自代表的含义
- 利用Euclid算法求解两个数的最大公约数及逆 matlab
- Sick编码器CanOpen通信
- 重学JavaWeb —— Servlet,简单全面一发入魂
热门文章
- Linux发行版在嵌入式设备上的未来
- Waves每月文摘:2020年10月
- 弹窗广告关不掉退不出 你的手机App里暗藏多少“牛皮癣”?
- 最新 python 3 实现百度翻译 sign 逆向
- NSLocalizedDescription 无法连接到 itunes store
- 计算机用电安全知识,计算机机房用电安全制度
- train loss相关问题
- 下一代互联网服务总线
- 服务器基本系统设备叹号,Windows 7系统中设备管理中Lenovo vhid device为叹号的解决方案...
- 计算机用户组改密码,怎么修改windows2012用户密码