
文章目錄
- 玩轉json
- 什么是json
- Python中的Json模塊
- 獲取json中的某個資料
- Jpath
- numpy
- 使用ndarray創建陣列的好處
- numpy基本操作
- 文本資料去重
- 資料采集方式
好幾天沒寫啥實在的干貨了,今天見六不廢話了,直接上干貨,
玩轉json
什么是json
Json是一種輕量級的資料交換格式,具有資料格式簡單,讀寫方便易懂等很多優點,用它來進行前后端的資料傳輸,大大的簡化了服務器和客戶端的開發作業量,
如果說現在對json還沒有什么概念的朋友,了解了以上內容之后,再了解一下它是字典形式的即可,一切存取操作如字典,
只是前后可能做點格式轉換罷了,
來個例子熟悉一下:
{
"animals": {
"dog": [
{
"name": "Rufus",
"age":15
},
{
"name": "Marty",
"age": null
}
]
}
}
我們平時要去哪里找這種json格式的資料呢?網路抓包抓出來的就有很多是這樣的,前面不是說了嘛,
Python中的Json模塊
Python有自帶的json模塊,用的比較多的函式有如下:
json.dumps() 是將 python 物件轉化為 json,
json.loads() 是將 json 轉化為 python 物件,
如果你是用谷歌瀏覽器來看網頁原始碼的話,你看到的json包那是相當之凌亂的啊,這時候我建議你先暫時切換到火狐來,就會看到如下格式的圖:

是不是會清晰很多、
獲取json中的某個資料
如果我們要獲取上面示例資料(test)中的某個元素,比方說,狗的名字,要如何操作呢?
dog_msg = json.loads(test)
for msg in dog_msg["animals"]["dog"]
print(msg["name"])
注意,在json資料里面,{} 是字典,[] 是串列,
Jpath
既然XML都有Xpath,那 json 就不配有自己的導航路徑了嗎?
那必須有啊,安排!!!

接下來,我們使用Jpath來獲取一下所有的狗的名字:
load_data = json.loads(dump_data)
data=load_data['animals']['dog']
for i in data:
# 從根節點開始,匹配name節點
print(jsonpath.jsonpath(i,'$..name')[0])
其中 $…name 代表從根節點開始,匹配name節點
numpy
numpy,底層運行的是C和C++的代碼,但是上層使用的是python語言去寫的,
考慮到不是所有小伙伴都學過C/C++,我還是簡單介紹一下ndarray,

list串列中可以存盤不同的資料型別,ndarray陣列中存盤的所有的元素的型別,都必須一致,
使用ndarray創建陣列的好處
ndarray好處在于:1、由于元資料(資料型別)只需要存盤一份,所以可以更節省空間,2、由于每個元素的型別一致,就證明每個元素占用記憶體的大小是一致的,那么這樣的資料的存盤可以更緊湊,操作更高效,
numpy基本操作
創建numpy物件
import numpy as np
array1 = [1,2,3]
m = np.array(array1)
display(m)
array1 = np.arange(1,10,2)
display(array1)
arange()函式的步長,可以是浮點數,但是range()函式的步長,不能是浮點數
np.zeros((x,y)):生成一個x行y列的,元素都是0的二維陣列;
np.ones((x,y)):生成一個x行y列的,元素都是1的二維陣列;
np.full((x,y),value):生成一個x行y列的,元素都是value的二維陣列,其中這個value值可以是整數(正整數,0,負整數)或者小數
and so on.
我也不知道為啥寫了這么一個模塊,但是既然寫了就放這里吧,
文本資料去重
在做情感分析的時候,有時候需要對文本進行分詞,做詞頻統計,
以“單字詞”為例,進行原理說明:

通過上圖可以發現,進行詞陳述句內去重,首先判斷位置j到j+1位置的元素是否相等,如果相等,再判斷j+1處的元素和j+2處的元素是否相等,這樣依次進行下去,
不多說,直接上代碼吧:
def func(st):
for i in range(1,int(len(st)/2)+1):
for j in range(len(st)):
if st[j:j+i] == st[j+i:j+2*i]:
k = j + i
while st[k:k+i] == st[k+i:k+2*i] and k<len(st):
k = k + i
st = st[:j] + st[k:]
return st
st = "我愛你我愛你我愛你好你好你好哈哈哈哈哈"
func(st)
資料采集方式
這幾天都在陸陸續續的做資料采集,也感受到了采集資料的困難,所以還是有必要開這么一塊兒的,
目前我所能了解到的比較好的資料采集方式如下:
1、日志,這個毋庸置疑了吧
2、政府網站:如國家統計局,我們之前做時間序列分析的課設就是那里找到,
此外還有:國家資料網等
3、私人資料網站,如:蟬媽媽等,這個需要經驗,
4、咨詢類公司資料報告,這個就是花錢買資料了,
5、資料競賽網站:國內外都有許多著名的資料競賽網站,在這里聚集了大量資料分析師,甚至是資料科學家,這些網站不僅提供了大量資料,也由于專業性的比賽,也是學習資料分析的好地方,
如:下方藍字
6、開放API介面,如:下方藍字
7、網路爬蟲
Kaggle
科賽
阿里天池
百度資料開放平臺
聚合資料
高德地圖
百度地圖
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272824.html
標籤:AI
上一篇:資料結構——“優雅的”復雜度
