【问题标题】:API/JSON Value ErrorAPI/JSON 值错误
【发布时间】:2015-12-20 03:12:20
【问题描述】:

当我输入网址时,我一直在尝试使用具有以下响应的 API:

{
    "resource": "playerdashptshotlog",
    "parameters": {
        "LeagueID": "00",
        "Season": "2014-15",
        "SeasonType": "Regular Season",
        "PlayerID": 202066,
        "TeamID": 0,
        "Outcome": null,
        "Location": null,
        "Month": 0,
        "SeasonSegment": null,
        "DateFrom": null,
        "DateTo": null,
        "OpponentTeamID": 0,
        "VsConference": null,
        "VsDivision": null,
        "GameSegment": null,
        "Period": 0,
        "LastNGames": 0
    },
    "resultSets": [

我的代码如下:

import json, requests
github_url = 'http:dsds
parsed_input = json.loads(github_url)
print (parameters.keys())
print (parameters['LeagueID']['Season'])

当我使用 Python34 时出现错误:

Traceback(最近一次调用最后一次):文件“C:\Python34\Scripts\NBA API-JSON.py”,第 27 行,在 parsed_input = json.loads(github_url) 文件“C:\Python34\lib\json__init__.py”,第 318 行,加载中 在解码中返回 _default_decoder.decode(s) 文件“C:\Python34\lib\json\decoder.py”,第 343 行 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“C:\Python34\lib\json\decoder.py”,第 361 行,在 raw_decode raise ValueError(errmsg("Expecting value", s, err.value)) from None ValueError: Expecting value: line 1 column 1 (char 0)

当我在 Python27 上运行它时,我得到了这个错误:

Traceback(最近一次调用最后一次):文件“C:\Python27\Scripts\NBA API-JSON.py”,第 27 行,在 parsed_input = json.loads(github_url) 文件“C:\Python27\lib\json__init__.py”,第 338 行,加载中 在解码中返回 _default_decoder.decode(s) 文件“C:\Python27\lib\json\decoder.py”,第 366 行 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“C:\Python27\lib\json\decoder.py”,第 384 行,在 raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded

我试图找出我做错了什么。我尝试使用我在以下位置找到的问题的示例答案:

Parsing Multidimensional JSON Array

【问题讨论】:

  • 您是否没有复制所有回复,因为您粘贴的不是有效的 JSON,它以打开的 [ 结尾
  • 价值约 60 页

标签: json decode


【解决方案1】:

您好像忘记获取数据了。试试:

github_url = 'http://whatever'
r = requests.get(github_url)
if r.status_code == 200:
    parsed_input = json.loads(r.text)

请求还可以为您解析 JSON:

parsed_input = r.json()

【讨论】:

  • 我怎样才能打印某些字段,例如:TeamID、PlayerID 等?这样我以后就可以像表格格式一样操作这些值中的任何一个。
  • @RossJohnson 我认为这与您的问题无关。我相信这个答案回答了你的问题。如果您认为确实如此,那么最好赞成/接受它。我建议为此创建另一个问题,提供更多详细信息。
  • json.loads() 返回一个常规的 python 字典或列表,这取决于输入的 JSON 是什么。在你的情况下做 parsed_input['parameters']['TeamID'] 等等。
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多