ValueError:期望值:第1行第1列(字符0)

时间:2015-09-21 03:54:03

标签: python

检查了类似问题的其他答案,但找不到解决此特定问题的任何问题。我无法弄清楚为什么我会收到错误,因为我不相信我错过了任何价值观。另外,我觉得奇怪的是它说第1行第1列(字符0) - 你们中的任何一个人都有什么想法吗?

import json
import urllib.request

user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"

url = "http://api.usatoday.com/open/articles/topnews?encoding=json&api_key=98jv5a93qs"

headers={"User-Agent":user_agent,} 

request = urllib.request.Request(url, None, headers)

parsed_json = json.loads(str(request))

for i in range(6):
    title = parsed_json['stories'][i]['title']
    link = parsed_json['stories'][i]['link']
    print(title)
    print(link)
    print("-----------------------------------")

2 个答案:

答案 0 :(得分:2)

您正在尝试解析响应JSON。但你没有发送请求的事件。 你应该发送你的Request,然后解析响应JSON:

import json
import urllib.request

user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"

url = "http://api.usatoday.com/open/articles/topnews?encoding=json&api_key=98jv5a93qs"

headers={"User-Agent":user_agent,}

request = urllib.request.Request(url, None, headers)
res = urllib.request.urlopen(request)

parsed_json = json.loads(res.readall())

for i in range(6):
    title = parsed_json['stories'][i]['title']
    link = parsed_json['stories'][i]['link']
    print(title)
    print(link)
    print("-----------------------------------")

答案 1 :(得分:1)

我在both the docsor v. 2)和上面的网址中看到的问题是,您正在尝试解析不是JSON的JSON。我建议尝试将你的调用包装到json.loads ...除了块并处理坏的JSON。无论如何,这通常是一种很好的做法。

为了好的衡量,我查了source code for the json module。看起来Py2k的所有错误都指向了值错误,以为我找不到你提到的具体错误。

根据我对the JSON module的阅读,如果您使用try...except并打印错误模块的属性,您也可以获得更多信息。