前因
原本想爬取点股票的数据分析分析,然后就遇到了这个坑,已经有段时间没再接触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)】相关推荐

  1. 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 ...

  2. 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= ...

  3. Json错误JSONDecodeError: Extra data解决方案

    (作者:www.data-master.net 数据极) 问题描述: 使用以下代码转换字符串为json格式时,出现JSONDecodeError: Extra data的错误: import json ...

  4. (已解决)json.decoder.JSONDecodeError: Extra data: line 1 column 47 (char 46)

    问题描述 *json.load(file)*出现上述错误. 原因是file中包含不止一条记录.json.load函数只能解析一条记录. 解决方案 将多条记录强行封装为一条,便可读取. Referenc ...

  5. raise JSONDecodeError(“Expecting value“, s, err.value) from None

    数据转换成json对象时报错 [提示出错] File "C:\Users\14062\AppData\Local\Programs\Python\Python37-32\lib\json\d ...

  6. 【内容详细、源码详尽】MySQL极简学习笔记

    碎话 本人整理资料时,发现了之前学习MySQL时做的笔记.笔记内容做的蛮好的,值得分享给大家.所以根据自己的学习能力.精力.空余时间情况,把笔记整理成了四天的学习章节. 每一个DQL.DML.DDL语 ...

  7. 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins

    目录 [本文简介看之前请详细的看完介绍] 本文是全网首发的[全栈接口测试进阶系列教程]jmeter接口测试工具从入门到入职, 接口系列包含 接口测试系列包含所有的接口测试工具入门到入职,如果你喜欢的话 ...

  8. 【VMware vRealize Suite 2019 部署系列】- 「2」 – 部署 vRealize Operations 8.1

    [VMware vRealize Suite 2019 部署系列]- 「2」 – 部署 vRealize Operations 8.1 vRealize Operations 8.x  小旭  10个 ...

  9. 【逗老师带你学IT】PRTG监控通过Python+Modbus RTU获取温湿度传感器数据

    前文[逗老师带你学IT]PRTG监控通过Python+TCP Modbus获取温湿度传感器数据中我们讲了如何通过Python读取支持TCP Modbus的传感器数据.本章我们讲解下如何读取Modbus ...

最新文章

  1. 什么样的文献有html阅读,有关html的参考文献
  2. ssl charles 参数看不到_SSL证书=安全?小心,别错漏了TA……
  3. android使用java library module时初始化OkHttpClient时报错 ClassDefNotFoundError之类的
  4. div居中 边框设置 文字行高设置
  5. java代码数据库添加操作_java连接数据库后进行更新插入操作
  6. 读债务危机0824:随笔
  7. C/C++结构体struct 与结构体数组和枚举型enum的结合使用
  8. win10环境下如何给visual studio 2013永久配置opencv3.1.0环境
  9. 全文搜索Apache Lucene简介
  10. 谨防代理木马和怕米释放有毒程序
  11. C++11 新特性 —— 关键字noexcept
  12. 旅游新时尚:点点鼠标就可“周游世界”
  13. java 复制Map对象(深拷贝与浅拷贝)
  14. OpenCV-图像处理(10、膨胀与腐蚀)
  15. FFmpeg 视频添加水印
  16. highcharts 开发笔记
  17. linux中文件颜色,蓝色,白色等各自代表的含义
  18. 利用Euclid算法求解两个数的最大公约数及逆 matlab
  19. Sick编码器CanOpen通信
  20. 重学JavaWeb —— Servlet,简单全面一发入魂

热门文章

  1. Linux发行版在嵌入式设备上的未来
  2. Waves每月文摘:2020年10月
  3. 弹窗广告关不掉退不出 你的手机App里暗藏多少“牛皮癣”?
  4. 最新 python 3 实现百度翻译 sign 逆向
  5. NSLocalizedDescription 无法连接到 itunes store
  6. 计算机用电安全知识,计算机机房用电安全制度
  7. train loss相关问题
  8. 下一代互联网服务总线
  9. 服务器基本系统设备叹号,Windows 7系统中设备管理中Lenovo vhid device为叹号的解决方案...
  10. 计算机用户组改密码,怎么修改windows2012用户密码