摘要

环境:

  • 编程语言:Python 3.7
  • 操作系统:Win 10
  • json数据对象:https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2019-11-03&leftTicketDTO.from_station=GZQ&leftTicketDTO.to_station=SZQ&purpose_codes=ADULT

背景:

我用python写一个获取12306车票信息json数据的脚本时,遇到如下报错:

Traceback (most recent call last):File "C:/Users/JohelLiang/Desktop/python/specialTicket.py", line 68, in <module>json = respone.json()File "E:\Python37\lib\site-packages\requests\models.py", line 897, in jsonreturn complexjson.loads(self.text, **kwargs)File "E:\Python37\lib\json\__init__.py", line 348, in loadsreturn _default_decoder.decode(s)File "E:\Python37\lib\json\decoder.py", line 337, in decodeobj, end = self.raw_decode(s, idx=_w(s, 0).end())File "E:\Python37\lib\json\decoder.py", line 355, in raw_decoderaise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

将报错信息 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 放到百度上查询,发现大多都说是json数据格式的问题,然而我对json数据进行检查,或者按照百度说的方法,将加载json数据的方法改为兼容非标准格式模式,即 json.loads(json_str, strict=False) ,依然行不通,车票信息的json数据如下:

问题发现:

之后我无意中把自己的网络换了一个环境,意外的发现数据竟然获取成功,不再报错,频繁获取也不会报错,原先的环境无论怎么刷新都是会报错的。

于是我对DNS进行排查(之前试过用几十个代理对json数据进行获取,发现也是同一个报错,所以确定不是ip限制的问题),发现原环境解析 kyfw.12306.cn 的实际ip为 59.34.229.253 ,新环境解析 kyfw.12306.cn 的实际ip为 113.96.140.252 ,如下图:

原环境:

新环境:

kyfw.12306.cn 可解析出的实际ip地址共有 个,分别是 59.34.229.253、113.96.140.253、113.96.140.252、59.34.229.254 ,对其进行排查,发现只有访问的实际ip是 113.96.140.252 时,是可以成功获取json数据的。

解决问题:

于是乎,我想到在hosts中加入12306的固定域名解析,发现问题得以解决,无论如何频繁获取json数据,都不会报错,解决步骤如下:

1、win+R 输入 cmd 打开命令行工具

2、输入 nslookup 命令并访问域名对象 kyfw.12306.cn ,查询域名对应的所有实际ip

3、找到 hosts文件 ,在windows中hosts文件路径:C:\Windows\System32\drivers\etc

4、在hosts文件最后新增一行内容(对解析出的4个ip进行替换,选取可成功获取json数据的ip):113.96.140.252     kyfw.12306.cn

5、成功获取json数据

【debug】json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)相关推荐

  1. json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 问题解决

    json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 问题解决 参考文章: (1)json.decoder.J ...

  2. json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    可以参考一波:https://stackoverflow.com/questions/16573332/jsondecodeerror-expecting-value-line-1-column-1- ...

  3. json.decoder.JSONDecodeError: Expecting ‘,‘ delimiter: line xx column xx (char xxx)

    将python json字符串转为json的时候出现了:json.decoder.JSONDecodeError: Expecting ',' delimiter: line 12 column 55 ...

  4. json.decoder.JSONDecodeError: Expecting value: line 28 column 5 (char 731)

    傻屌问题,看看是不是json.load读的文件是不是多了哪个符号. 比如这里最后面多了个逗号就报错............

  5. Python 中JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误

    文章目录 尝试解析空字符串会导致错误 错误的常见原因 尝试解析无效的 JSON 值 忘记用引号括起属性或字符串值 对属性或值使用单引号而不是双引号 确保你没有尾随逗号 发出 HTTP 请求时得到空响应 ...

  6. json.decoder.JSONDecodeError: Invalid \escape: line 1 column 44 (char 43)

    import jsondict_str = '{ "content": ""\u003Cblockquote class=\"pgc-blockquo ...

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

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

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

  9. 解决json解析报错:Expecting value: line 1 column 1 (char 0)

    一般来说,出现这种Expecting value: line 1 column 1 (char 0)报错,一般原因都是返回的数据的格式不是json格式的. 今天在用flask写一个接口,测试接口的时候 ...

最新文章

  1. 特征工程+特征组合+特征交叉+特征变换+生成特征
  2. Invalid config event received: {version=0, server
  3. kafka->Flink->ElasticSearch(Java形式)
  4. PCI总线原理(二)
  5. oracle date 隐式转换,PL/SQL中的数据类型隐式转换规则
  6. 国内三巨头为什么那么成功
  7. Unity3D基础24:LineRenderer特效
  8. AAAI'22 | 多模态摘要任务中的知识蒸馏和分层语义关联
  9. 30、vue 过滤器(filters)
  10. 神经网络 神经元_神经去耦
  11. 全文索引的使用(二)--使用同义词库 (转)
  12. 小说站源码php采集,关于PHP批量采集----采集小说站有感
  13. 3DSMAX和ZBRUSH打造神秘性感美女
  14. java前后端分离怎么测试,前后端分离如何提高开发测试效率
  15. EPLAN软件安装教程
  16. 今天是本学期的第几周的第几天? (15 分) C语言
  17. linux的tmp分区,在Linux系统中的单独分区上挂载/tmp的方法
  18. 让机器耳濡目染:MIT提出跨模态机器学习模型
  19. NLPCC20@基于图注意网络的句子成分感知细粒度情感分析模型SCAN
  20. 高速信号线PCB走线中的阻抗匹配

热门文章

  1. vue.js视频课程_在此免费课程中学习Vue.js! ✨
  2. 软件测试测试 python_Python测试简介
  3. 容器,VM和Docker的初学者友好介绍
  4. chrome查看md文件
  5. Python爬虫的基本原理
  6. python实现秒杀商品的微信自动提醒功能(附代码)
  7. C++生成一个随机网络
  8. Scrapy的安装介绍
  9. 多线程-threading和进程VS线程(python 版)
  10. ExtJS之Store