GitHub上最火的開源項目是啥|JSON文件實戰處理
1.什麼是JSON文件和Python數據的區別
俗話說有web的地方就有javascript(怎麼感覺像電影里的台詞,有人的地方就有江湖),那麼大名鼎鼎的javascript的存取數據格式是什麼的, 對就是JSON.JSON是一種輕量級的數據交換格式,簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言,非常方便,同時也容易解析,所以我們一定要學會Python中如何處理JSON文件。
1).JSON和Python格式對比
簡單說:JSON的編碼格式和Python很類似
JSON的編碼支持的基本類型有None,bool,int,float,和str,當然也包含字典,列表和元組.
比如:JSON最常用的格式是對象的 鍵值對,比如這樣的
["foo", {"bar": ["baz", null, 1.0, 2]}]
注意的是JSON鍵值key是字元串(字典中的任何非字元串鍵都會在編碼的時候轉換為字元串)
當然也有一些小的區別
True會映射成true
False會映射成false
None會映射成null
2.Python中處理JSON的4個重要函數
Python中有一個內置模塊JSON,可以非常方便的處理JSON文件,其中有4個比較重要也是最常用的函數,下面詳細介紹一下
1).dumps()
dump函數就是把Python字典的數據轉換成json格式的數據
大家發現沒有,JSON有一個顯著的特徵字元串都有雙引號,另外None變成了null,True變成了true
dumps裡面還有一些其他的參數,比如可以去掉一些空的字元
import json
list1=[10, 20 ,abc,{name:Leo,age:20}]
print json.dumps(list1,separators=(,,:))
>>[1,2,"abc",{"age":20,"name":"Leo"}]
輸出的字典的鍵值排序
l3={"c": 0, "b": 0, "a": 0}
print json.dumps(l3,sort_keys=True)
>>
{"a": 0, "b": 0, "c": 0}
2).loads()
loads()函數可以把JSON數據轉成Python數據
變成了Python數據之後,就可以自由的使用字典
print jsonDataAsPythonValue[name]
>>Lili
3).dump()
dump函數和dumps函數的區別在於dump文件把python數據寫到json文件裡面,裡面會多一個文件句柄
4).load()
load()和loads()函數的差別也是一個讀json數據,一個是讀json文件句柄
3.獲取Github上的最火開源項目
Github上有很多開源的項目,對於喜歡的用戶可以加星(star),表示支持,我們今天就用一個小程序來看一下那個是最牛最火的項目
1).首先我們寫一個函數去獲取JSON文件
這裡我們用request庫,提供一個github上的url就可以非常方便的獲取了
>>
[utotal_count, uitems, uincomplete_results]
Total Project:1607749
Repositories returned:30
total_count: 1607749
Github上有一百六十萬多的項目,那有同學會問,怎麼提供一個url就可以獲取了啊,這裡用了一個叫做Web Api的機制,請求的數據將以易於處理的格式(如JSON或CSV)返回,可以非常方便的讓機器獲取.
2).顯示最火的項目
上面的函數已經把JSON文件處理了,並且變成了一個龐大的字典repo_dicts這其實一個很大的列表,每個列表裡面都一個字典,裡面有很多key,這裡我們最關心的是:
項目的名字
發起者
有多少個星
創建的時間
大概的描述
>>
Followed are info about each repo:
Name:awesome-python
Owner:vinta
Stars:32325
created_at:2014-06-27T21:00:06Z
Description: A curated list of awesome Python frameworks, libraries, software and resources
最火的是awesome-python項目,這個項目很牛收穫了32325個星
歡迎大家關注微信公眾號 【菜鳥學Python】,更多好玩有趣的Python原創教程,趣味演算法,經驗技巧,行業動態,盡在菜鳥學Python,一起來學python吧
歷史人氣文章
Python語言如何入門
用Python寫個彈球的遊戲
Python寫個迷你聊天機器人|生成器的高級用法
用Python破解微軟面試題|24點遊戲
一道Google的演算法題 |Python巧妙破解
推薦閱讀:
※黃哥說很多人的循環都寫不好, 請看。
※Python資料庫起航篇|零基礎起步
※切爾西隊史上第一次連續三場0比0,重點是...
※Python數據分析及可視化實例之可視化圖表應用簡介
TAG:Python |