使用python接收JSON DIC

使用python接收JSON DIC,python,json,Python,Json,我对python非常陌生,我想获得一个JSON dic并基于它制作一个python dic。 这些JSON DIC的一个示例如下: 所以我需要得到它并在屏幕上打印所有的键“URL” 我见过一些类似的情况,但效果不好,我现在的代码是: while (page < 50): page_src = urllib.urlopen(search_url + '?cod=&start=' + str(page)).read() json_src = json.load

我对python非常陌生,我想获得一个JSON dic并基于它制作一个python dic。 这些JSON DIC的一个示例如下:

所以我需要得到它并在屏幕上打印所有的键“URL”

我见过一些类似的情况,但效果不好,我现在的代码是:

    while (page < 50):
    page_src = urllib.urlopen(search_url + '?cod=&start=' + str(page)).read()
    json_src = json.loads (page_src)

    for item in json_src['responseData']:
        sub_item = json_src['responseData']['results']
        for link in sub_item:
            for key in link:
                if (key == u'"url"'):
                    print link[key]
    page = page + 1
while(第<50页):
page_src=urllib.urlopen(search_url+'?cod=&start='+str(page)).read()
json\u src=json.loads(第\u src页)
对于json_src['responseData']中的项:
sub_item=json_src['responseData']['results']
对于子项中的链接:
对于输入链接:
如果(键==u“url”):
打印链接[键]
第页=第+1页
但当我被处决时,我得到: TypeError:“非类型”对象不可编辑

无论我错在哪里,请帮助我。。 谢谢大家


V0ID检查以确保您的url正确,代码对我有效。我唯一的修订是:

for item in json_src['responseData']['results']:
    print link[key]
另外,确保
页面
的起始值和结束值都是真实的URL,因为没有找到
'responseData'
这样的东西,所以您得到的是非类型

另外,您的搜索url的价值是什么?您是否在其中包含
?v=2.0&q=python?
?如果你把你的url搞砸了,你的NoneType是因为你试图在
json_src['responseData']['results']
中进行迭代,因为根本没有这样的东西

编辑:

问题是您在循环中重新分配了搜索url。第二次迭代时,url变为
http://ajax.googleapis.com/ajax/services/search/web?v=2.0&q=python?cod=&start=0?cod=&start=1
附加了这两个选项。只需将
search\u url=
更改为
cur\u url=

最终代码:

print "\n\n RESULTS:"
while (page < 2):
    current_url = search_url + '?cod=&start=' + str(page)
    json_src = json.load(urllib.urlopen(search_url))
    print json_src
    results = json_src['responseData']['results']
    for result in results:
        print "\t" + result['url']
    page = page + 1
打印“\n\n结果:
而(第<2页):
当前url=搜索url+'?cod=&start='+str(第页)
json_src=json.load(urllib.urlopen(search_url))
打印json_src
results=json_src['responseData']['results']
对于结果中的结果:
打印“\t”+结果['url']
第页=第+1页

我已经看到堆栈溢出上的代码没有一些标识oO,但这里是正常的。pastebin:首先:如果您遇到错误,请向我们显示整个错误消息。追踪和所有。第二,你确定JSON看起来和你想象的一样吗?可能在您期望的其他内容中有空。搜索\u url是否正确bro:/Post完整错误,它是哪一行?它是url。现在检查编辑工作,非常感谢,有了这个我终于可以完成我的申请了。