【Python】json
json
所謂json,就是由鍵值對組合而成用來存儲數據的數據交換格式。我個人非常喜歡json這個數據存儲方式,因為它可以包羅萬象,自由度很高。
接下來,就從python幾個常見的使用場景,介紹json 的一些基本用法。
1、導入python包
import json info = {'name':'劉處玄','age':22,'job':'student', }2、將代碼數據轉換成json字符串(dump和dumps的用法)
data = json.dumps(info) print(data) #輸出{"name": "\u5218\u5904\u7384", "age": 22, "job": "student"}#保存至文件 with open('test1.txt','w') as f:s = json.dumps(info)f.write(s)3、將json字符串轉換為代碼數據(load和loads的用法)
data = json.dumps(info) info2 = json.loads(data) print(info2) #輸出{'name': '劉處玄', 'age': 22, 'job': 'student'}4、json的鍵:Key
result=json.loads(data) result.get('success') result.get('error_text') result.get('decision') result.get('data').get('applyLoanInfo')5、json的值:Value
根據取到的key取value
6、json和Dataframe之間的轉換
當我們在進行數據分析的時候,經常會遇到各種各樣格式的文件,今天在這里整理一下對于json格式的文件怎么轉化為dataframe的形式的文件。
一、對于簡單的json形式
所謂的簡單的json格式,就是將字典形式的文件,直接輸出成dataframe形式的文件,如: obj="""[{"姓名": "張三","住處": "天朝","寵物": "koala","兄弟": "李四" },{"姓名": "李四","住處": "天朝","寵物": "cat","兄弟": "張三"}]""" with open("test.json","w",encoding="utf-8") as f:f.write(obj)1.利用pandas自帶的read_json直接解析字符串
import pandas as pd df = pd.read_json("test.json",encoding="utf-8", orient='records') print(df)2.利用json庫loads方法和pandas庫中的json_normalize方法
import json from pandas.io.json import json_normalize data=open("test.json",encoding="utf-8").read() data_list = json.loads(data) df = json_normalize(data_list) print(df)二、對于稍微復雜一些的json進行處理
復雜的一些的json格式的文件,例子如下,我們想要得到的數據是張三兄弟的數據,同樣先寫入json文件: obj = """ {"姓名": "張三","住處": ["天朝", "島國", "萬惡的資本主義日不落帝國"],"寵物": null,"兄弟": [{"姓名": "李四", "年齡": 25, "寵物": "汪星人"},{"姓名": "王五", "年齡": 23, "寵物": "喵星人"}] }""" with open("test1.json","w",encoding="utf-8") as f:f.write(obj)1.利用json的loads和pandas的DataFrame
import json import pandas as pd with open("test1.json","r",encoding="utf-8") as f:info=f.read()data_list = json.loads(info)brother_info = data_list["兄弟"]#print(type(df)) # print(df)df=pd.DataFrame(df)print(df)2.利用json的loads和pandas的json_normalize
from pandas.io.json import json_normalize import json with open("test1.json","r",encoding="utf-8") as f:info=f.read()data_list = json.loads(info)brother_info = data_list["兄弟"]df = json_normalize(brother_info)print(df)3.利用json的loads和pandas的read_json
import json import pandas as pd with open("test1.json","r",encoding="utf-8") as f:info=f.read()data_list = json.loads(info)brother_info = data_list["兄弟"]json_data=json.dumps(brother_info)df=pd.read_json(json_data,orient="records")print(df)總結:
在以上的例子中,可以發現在進行簡單的格式轉換的時候,可以使用pandas庫的read_json進行處理,在進行復雜的格式轉換的時候就要配合json庫進行使用。在這里重點介紹一下兩個函數,reada_json方法和json_normalize方法。
在使用時,要注意read_json方法中orient參數的選擇,同時json_normalize可以將傳入的列表,字典形式的json格式數據直接轉換成dataframe。不足之處,還請指正~
總結
以上是生活随笔為你收集整理的【Python】json的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【风控流程】大数据风控代码逻辑
- 下一篇: 【Python】Pycharm