python解析json數據


現在的API接口多為xml或json,json解析更簡潔相對xml來說

 

以豆瓣的API接口為例,解析返回的json數據:

https://api.douban.com/v2/book/1220562
{
    "id":"1220562",
    "alt":"http:\/\/book.douban.com\/book\/1220562",
    "rating":{"max":10, "average":"7.0", "numRaters":282, "min":0},
    "author":[{"name":"片山恭一"}, {"name":"豫人"}],
    "alt_title":"",
    "image":"http:\/\/img1.douban.com\/spic\/s1747553.jpg",
    "title":"滿月之夜白鯨現",
    "mobile_link":"http:\/\/m.douban.com\/book\/subject\/1220562\/",
    "summary":"那一年,是聽莫扎特、釣鱸魚和家庭破裂的一年。說到家庭破裂,母親怪自己當初沒有找到好男人,父親則認為當時是被狐狸精迷住了眼,失常的是母親,但出問題的是父親……。",
    "attrs":{ 
       "publisher":["青島出版社"],
        "pubdate":["2005-01-01"],
        "author":["片山恭一", "豫人"],
        "price":["18.00元"],
        "title":["滿月之夜白鯨現"],
        "binding":["平裝(無盤)"],
        "translator":["豫人"],
        "pages":["180"]
    },
    "tags":[
        {"count":106, "name":"片山恭一"},
        {"count":50, "name":"日本"},
        {"count":42, "name":"日本文學"},
        {"count":30, "name":"滿月之夜白鯨現"},
        {"count":28, "name":"小說"},
        {"count":10, "name":"愛情"},
        {"count":7, "name":"純愛"},
        {"count":6, "name":"外國文學"}
    ]
}

Python解析我們想要的數據如:id、rating里的max 、tags第一行的name值

import urllib2
 
         
import json
 
         
 
         
html = urllib2.urlopen(r'https://api.douban.com/v2/book/1220562')
 
         
hjson = json.loads(html.read())
 
         
 
         
print hjson['id']
 
         
print hjson['rating']['max']
 
         
print hjson['tags'][0]['name']

結果圖:

QQ截圖20141006160115

 

python中通常情況下for循環會枚舉各個元素不會訪問下標,例如:

l = [1,2,4,6] for val in l: print l

但是有時候我們會需要在便利數組的同時訪問下標,這時候可以借助於enumerate函數來實現,例如:

l = [1,2,3] for index,val in enumerate(l): print 'index is %d, val is %d' % (index,val)
本文轉自http://blog.csdn.net/zwto1/article/details/39829067 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM