標籤:

GitHub上最火的開源項目是啥|JSON文件實戰處理

Python常見的數據文件格式處理有4種(CSV,JSON,XML.HTML),我們前面已經講了CSV文件的處理,今天我們來講一下JSON文件的處理,最後用一個實戰小例子,來分析一下程序員中的facebook GitHub上最火的開源項目是啥.

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 |