Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

火车票查询报错: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) #29

Open
guyskk opened this issue Jan 18, 2017 · 9 comments

Comments

@guyskk
Copy link

guyskk commented Jan 18, 2017

Python 3.5.2 和 Python 3.6.0 都试了,都报错:

$ uname -a
Linux localhost.localdomain 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux
$ python -V
Python 3.5.2
$ iquery -d 南京 上海 20170201
Traceback (most recent call last):
  File "/home/guyskk/.virtualenvs/py35/bin/iquery", line 11, in <module>
    sys.exit(cli())
  File "/home/guyskk/.virtualenvs/py35/lib/python3.5/site-packages/iquery/core.py", line 112, in cli
    result = query(args.as_train_query_params)
  File "/home/guyskk/.virtualenvs/py35/lib/python3.5/site-packages/iquery/trains.py", line 250, in query
    return TrainTicketsQuery(*params).query()
  File "/home/guyskk/.virtualenvs/py35/lib/python3.5/site-packages/iquery/trains.py", line 238, in query
    rows = r.json()['data']['datas']
  File "/home/guyskk/.virtualenvs/py35/lib/python3.5/site-packages/requests/models.py", line 850, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib64/python3.5/json/__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python3.5/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib64/python3.5/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
@imcake
Copy link

imcake commented Jan 23, 2017

也遇到这样的问题了

@AceChampion
Copy link

simplejson也试了 一样挂

@jp1017
Copy link

jp1017 commented Apr 4, 2017

ubuntu 16.04
python 3.5.2
same issue.

@streamsteel
Copy link

same,too

@judehsu
Copy link

judehsu commented Apr 6, 2017

https://kyfw.12306.cn/otn/lcxxcx/query 返回403

@SunYong0821
Copy link

是因为火车站的地址变了,而且不止这一个问题,即使换了地址,返回的jason有问题
地址:https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2017-4-30&leftTicketDTO.from_station=GZQ&leftTicketDTO.to_station=HCQ&purpose_codes=ADULT

json返回:
validateMessagesShowId: "_validatorMessage",
status: true,
httpstatus: 200,
data: [
{
queryLeftNewDTO: {
train_no: "650000K7950D",
station_train_code: "K795",
start_station_telecode: "GGQ",
start_station_name: "广州东",

但是get回来的status是false,导致下面的data不显示,怎么办

@liopoos
Copy link

liopoos commented May 4, 2017

查询返回的地址变了,并且返回的json数据也变了。
请求的url应该是:

url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={}&leftTicketDTO.from_station={}&leftTicketDTO.to_station={}&purpose_codes=ADULT'.format(
        date, from_station, to_station
)

json返回的数据:

{
    "validateMessagesShowId": "_validatorMessage",
    "status": true,
    "httpstatus": 200,
    "data": {
        "result": [
            "|预订|240000G1810B|G181|VNP|QDK|JNK|QDK|12:59|15:40|02:41|N|WBMhLLDMWbAfcmawvlSndz8yZ0Xu6xOm6BdI0rQmDRDJRRGW|20170504|3|P2|05|09|0|0|||||||||||无|无|无|O0M090|OM9",
       ······     "9eHj0zGInflSvrhNSkpVo5JvfvWHJT4vAC%2F6tSLDFaFPJCEajKvBOyFI6yC0r39jxun51QYZe%2BkP%0AIAOzhoFmAT6ErBFVr5E0AIFzurB2UxuS4UwY3S%2Fgk6V%2B6W3NPGE7w2fPn8LSMvN5JUV1macAtmF1%0AbAN1poLftoMlLGFHUCrA84KpsyPf22QysLsHc04yb7%2FJueLEF9aATvic6f0F6ll4yUuxa8zMTolI%0AyJO49gg%3D|预订|5l0000G23460|G235|AOH|QDK|JNK|QHK|20:26|22:49|02:23|Y|yVwR8wOWON2rkvNz%2BpO6TQCoCwwRwypnwxARitfqn066AnvX|20170504|3|H1|06|10|0|0|||||||||||有|有|20|O0M090|OM9"
        ],
        "flag": "1",
        "map": {
            "JNK": "济南",
            "QDK": "青岛",
            "QHK": "青岛北"
        }
    },
    "messages": [],
    "validateMessages": {}
}

应返回的字典为:
available_trains = r.json()['data']['result']

火车时刻信息如下:
array(35) { [0]=> string(257) "2Ba09a2VQWV808rnsgLwG4BFFolHLYeA5IfaQV5cuf2GZbNKe2Avf8e7kY41rNN1N%2F72kriF%2F4%2FH%0AgBRP320tWAs5xShj9JLAEcnz7ywy4OnuOEOoMRJZyGOnSOrlju7zt4aSnu94RyYXudlyCPRZB5p2%0Aco14oTo4eQVj31ZYyQ5CRCTe03oGijOEeJfavVFNgSurkQ0bytBB6qcJtRoK7dCuXb286No%2BGrDI%0AFad5BUJGeteT" [1]=> string(6) "预订" [2]=> string(12) "880000Z27403" [3]=> string(4) "Z271" [4]=> string(3) "XNO" [5]=> string(3) "QDK" [6]=> string(3) "JNK" [7]=> string(3) "QDK" [8]=> string(5) "00:57" [9]=> string(5) "04:51" [10]=> string(5) "03:54" [11]=> string(1) "Y" [12]=> string(66) "1iMJnq3muQzcVxX4pWvyiy0ak0mtgVQbDZif%2Br4wDMJWNVt7e%2FNoSSCUzpg%3D" [13]=> string(8) "20170505" [14]=> string(1) "3" [15]=> string(2) "O1" [16]=> string(2) "18" [17]=> string(2) "21" [18]=> string(1) "0" [19]=> string(1) "0" [20]=> string(0) "" [21]=> string(0) "" [22]=> string(0) "" [23]=> string(2) "17" [24]=> string(0) "" [25]=> string(0) "" [26]=> string(3) "有" [27]=> string(0) "" [28]=> string(3) "有" [29]=> string(3) "有" [30]=> string(0) "" [31]=> string(0) "" [32]=> string(0) "" [33]=> string(8) "10401030" [34]=> string(4) "1413" }

@viviov
Copy link

viviov commented Sep 3, 2017

requests加请求头

@fuowang
Copy link

fuowang commented Jan 13, 2018

现在查询上海到北京的列车,返回的json字符串是这样的,不知道该怎么改代码。那一串加密字符串该怎么弄呢?
{ "data":{ "flag":"1", "map":{ "AOH":"上海虹桥", "BJP":"北京", "SHH":"上海", "VNP":"北京南" }, "result":["C6H7PAw2v7fLotgoNjKP3Fdu0Axat3RR%2FsLLWJeNnmxS0UBrIzyf6qr90LjAIVweNjGmktIa%2FG8d%0Adz1clk91c8xb9XfahUC0tAU1bVvmqFk2Vpc2TixPwmm3BZUuOqcGk6Ve%2BKpGeEOP2vyY%2FoybGVuk%0Aj9xai%2FRlyu7TPT%2Bc2OQsZBSRwyyHjmtGsBYu%2Bxy3%2FzLkJUj4T%2F5mcPFyNouju7qvaZH2NJj4bvMH%0A54Cii85tvoNaVF1UiPE69Iz%2BF2W7OURVWw%3D%3D|预订|5l0000G10262|G102|AOH|VNP|AOH|VNP|06:30|12:18|05:48|Y|e%2BvSGQZZA3I6imOJ5e8%2F%2FPNwfvVXoITXfj10xH0R3MDJ%2B5fK|20180114|3|HZ|01|10|1|0|||||||||||有|有|17||O0M090|OM9|1"] }, "httpstatus":200, "messages":"", "status":true }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants