日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 存儲json數據的操作

瀏覽:129日期:2022-06-20 11:16:54

本篇我們將學習簡單的json數據的存儲

首先我們需要引入json模塊:

import json

這里我們模擬一個常見常見,我們讓用戶輸入用戶名、密碼,在密碼輸入完成后提示用戶再次輸入密碼來確認自己的輸入,如果兩次密碼一致,那么我們將用戶名和密碼以json格式寫入文件,否則提示用戶再次輸入密碼。

name = input('please enter your name:')password = input('please enter your password:')confirm_password = input('confirm your password:')while password != confirm_password: print('input password inconsistencies,please try again') password = input('please enter your password:') confirm_password = input('confirm your password:')

我們運行下代碼確保我們的準備工作沒有問題:

python 存儲json數據的操作

ok,我們可以通過用戶輸入拿到用戶名和密碼,接下來,我們就需要將兩者以json格式存入文件了。

首先,我們將我們的輸入轉化為json對象:

user_info = json.dumps({’username’: name, ’password’: password}, sort_keys=True, indent=4, ensure_ascii=False)print(user_info)

這里我們使用了json.dumps函數,該函數 用于將 Python 對象編碼成 JSON 字符串。

語法:

def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) Inferred type: (obj: Any, Any, skipkeys: bool, ensure_ascii: bool, check_circular: bool, allow_nan: bool, cls: Any, indent: Any, separators: Any, default: Any, sort_keys: bool, kw: Dict[str, Any]) -> str

其中sort_keys是用來指定在json格式的對象里面是否按照key的名稱來進行排序,indent參數則指定縮進的空格數目。

最后的輸入格式如下:

{ 'password': 'us', 'username': 'us'}

那么接下來我們就將這個json對象寫入到文件中去:

with open(’user_info.json’, ’w’, encoding=’utf-8’) as json_file: json.dump(user_info, json_file, ensure_ascii=False) print('write json file success!')

這里我們需要學習一個函數json.dump:

def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) Inferred type: (obj: Any, fp: {write}, Any, skipkeys: bool, ensure_ascii: bool, check_circular: bool, allow_nan: bool, cls: Any, indent: Any, separators: Any, default: Any, sort_keys: bool, kw: Dict[str, Any]) -> None

這個函數有兩個參數是我們必須要填寫的:obj(我們要存儲的數據), fp(文件句柄,也就是我們要存在那個文件里面)。

ensure_ascii=False這個參數是處理我們希望在json對象里面可以包含中文的場景

If ensure_ascii is false, then the strings written to fp can contain non-ASCII characters if they appear in strings contained in obj. Otherwise, all such characters are escaped in JSON strings.

如果不指定ensure_ascii=False,那么當我們的數據里面包含中文的時候:

{'username': 'zhangu4e09', 'password': 'ddd'}

會有如上的顯示內容。

我們運行程序,依次輸入用戶名和密碼:

please enter your name:usplease enter your password:usconfirm your password:us{'username': 'us', 'password': 'us'}write json file success!Process finished with exit code 0

然后我們看下文本文件中的內容:

python 存儲json數據的操作

接下來我們就需要學習一下怎么讀取json格式的內容了。

with open(’user_info.json’, ’r’, encoding=’utf-8’) as json_file: data = json.load(json_file) print(data)

讀取json數據需要使用json.load函數:

def load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) Inferred type: (fp: {read}, Any, cls: Any, object_hook: Any, parse_float: Any, parse_int: Any, parse_constant: Any, object_pairs_hook: Any, kw: Dict[str, Any]) -> Any

這里我們需要提供一個參數fp,也就是我們要操作的文件句柄。

程序運行輸出:

{'username': 'us', 'password': 'us'}

我們可以打印一下json.load返回的是什么類型的:

print(type(data))

輸出:

<class ’str’>

可見,這是一個字符串,這是為什么呢?難道不應該返回的是python對應的對象嗎?

在上面的代碼中我們在寫入文件前面調用過:

user_info = json.dumps({’username’: name, ’password’: password}, ensure_ascii=False)

這一行代碼,大家還記得吧,它返回的是一個json字符串,所以上面的例子中我們需要使用json.loads重新反序列化為python對象,這一點大家留意一下,上面的例子我們是為了給大家演示json.loads的相關用法,使用如下:

data = json.loads(data)print(type(data))print(data[’username’])

如果沒有這行代碼,那么 data = json.load(json_file)返回的就是我們自己組織的數據結構了,如果還是{‘username’: name, ‘password’: password}這種格式,那么返回就是一個字典對象。

下面我們在通過一個list來看一下:

data = [1,2,3,4,5]with open(’user_info.json’, ’w’, encoding=’utf-8’) as json_file: json.dump(data, json_file, ensure_ascii=False)with open(’user_info.json’, ’r’, encoding=’utf-8’) as json_file: data = json.load(json_file) print(type(data)) print(data)

運行程序:

<class ’list’>

[1, 2, 3, 4, 5]

補充:Python創建并保存json文件,支持數據更新保存

大家還是直接看代碼吧~

import jsonclass Params(): '''Class that loads hyperparameters from a json file.Example:```params = Params(json_path)print(params.learning_rate)params.learning_rate = 0.5 # change the value of learning_rate in params```''' def __init__(self, json_path):with open(json_path) as f: params = json.load(f) # 將json格式數據轉換為字典 self.__dict__.update(params) def save(self, json_path):with open(json_path, ’w’) as f: json.dump(self.__dict__, f, indent=4) # indent縮進級別進行漂亮打印 def update(self, json_path):'''Loads parameters from json file'''with open(json_path) as f: params = json.load(f) self.__dict__.update(params) @property # Python內置的@property裝飾器就是負責把一個方法變成屬性調用的 def dict(self):'''Gives dict-like access to Params instance by `params.dict[’learning_rate’]'''return self.__dict__if __name__ == ’__main__’: parameters = {'SEED': 1, 'dataset': 'Omniglot', 'meta_lr': 1e-3, 'num_episodes': 5000, 'num_classes': 5, 'num_samples': 1, 'num_query': 10, 'num_steps': 100, 'num_inner_tasks': 8, 'num_train_updates': 1, 'num_eval_updates': 1, 'save_summary_steps': 100, 'num_workers': 1 } json_str = json.dumps(parameters, indent=4) with open(’params.json’, ’w’) as f: # 創建一個params.json文件f.write(json_str) # 將json_str寫到文件中 params = Params(’params.json’) params.SEED = 2 # 修改json中的數據 params.save(’params.json’) # 將修改后的數據保存

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
三级小说欧洲区亚洲区| 久久精品国产www456c0m| 国产模特精品视频久久久久| 免费视频一区二区三区在线观看| 亚洲午夜久久| 亚洲精品电影| 亚洲精品在线影院| 亚洲一区二区三区无吗| 国产欧美一区二区三区精品酒店| 先锋亚洲精品| 国产精选在线| 成人在线免费观看91| 日本三级亚洲精品| 国产精品探花在线观看| 日韩国产在线观看一区| 欧美日韩一二三四| av在线日韩| 欧美高清一区| 欧美+日本+国产+在线a∨观看| 日韩精品久久久久久久电影99爱 | 红杏一区二区三区| 日韩大片在线| 欧美日韩激情| 国产日韩中文在线中文字幕| 久久亚洲欧洲| 国产精品久久久久久av公交车| 精品视频黄色| 亚洲国产专区| 模特精品在线| 免费在线日韩av| 国产亚洲激情| 欧美在线日韩| 国产精品88久久久久久| 日韩av中文字幕一区二区| 中文字幕成在线观看| japanese国产精品| 成人国产综合| 在线视频观看日韩| 97精品国产福利一区二区三区| 国产成人久久精品一区二区三区| 日韩不卡免费视频| 久久亚洲图片| 亚洲在线网站| 中文字幕av亚洲精品一部二部 | 国产亚洲精品精品国产亚洲综合| 国产一区二区三区日韩精品| 日本不卡免费高清视频在线| 激情欧美国产欧美| 亚洲激情中文在线| 久久中文精品| 日韩国产欧美| 久久久久久夜| 久久久国产精品一区二区中文| 国产日韩一区二区三区在线播放| 国产精品任我爽爆在线播放| 毛片不卡一区二区| 91精品国产自产观看在线| 成人久久久久| 久久中文字幕导航| 国产一区国产二区国产三区 | 亚洲影院天堂中文av色| 亚洲精品一级二级| 国产精品成人国产| 丝袜美腿高跟呻吟高潮一区| 伊人久久亚洲影院| 丝袜美腿一区二区三区| 日韩成人一级| 日韩avvvv在线播放| 91亚洲国产| 欧美二区视频| 日韩欧美一区二区三区在线视频| 中文亚洲免费| 在线看片不卡| 日韩不卡一区| 国产一区二区久久久久| 99精品网站| 91国内精品| 超碰成人av| 国产日本亚洲| 视频一区二区国产| 国产超碰精品| 久久精品五月| 日韩精品亚洲专区在线观看| 午夜欧美巨大性欧美巨大| 樱桃成人精品视频在线播放| 青草久久视频| 久久一区欧美| 亚洲成人精品| 日韩精品91亚洲二区在线观看| 欧美日韩1区| 亚洲成av在线| 亚洲精品一级| 精品成av人一区二区三区| 国产亚洲精品v| 国产一区二区三区探花| 麻豆亚洲精品| 久久国产日本精品| 久久国产婷婷国产香蕉| 欧美不卡在线| 国产午夜久久av| 蜜桃av一区二区在线观看| 日韩精品诱惑一区?区三区| 亚洲激情不卡| 国产精品亚洲四区在线观看| 久久电影tv| 久久久久国产精品一区三寸| 红桃视频亚洲| 精品亚洲美女网站| 国产99久久| 每日更新成人在线视频| 日韩国产欧美| 精品视频网站| 国产精品嫩草影院在线看| 蜜臀av在线播放一区二区三区| 亚洲欧美综合| 日韩精品免费一区二区三区| 亚洲天堂资源| 黄色aa久久| 亚洲a成人v| 亚洲三级毛片| 色综合视频一区二区三区日韩 | 亚洲欧洲免费| 久久精品动漫| 国产日韩亚洲欧美精品| 国产亚洲网站| 97精品一区| 免费观看不卡av| 亚洲精品极品| 中文字幕在线免费观看视频| 亚洲深夜福利| 国产一区白浆| 视频一区日韩精品| 日韩精品欧美成人高清一区二区| 肉色欧美久久久久久久免费看| 免费观看久久久4p| 日韩精品亚洲专区| 久久激情综合网| 国产免费av一区二区三区| 日韩1区2区日韩1区2区| 青青青国产精品| 国产精品综合色区在线观看| 欧美日韩在线精品一区二区三区激情综合 | 欧美在线91| 国产日韩欧美高清免费| 91福利精品在线观看| 国产精品久久777777毛茸茸| 国产日韩欧美三区| 欧美日韩一区自拍| 国际精品欧美精品| 欧美日韩中文一区二区| 亚洲欧洲午夜| 欧美亚洲tv| 日韩理论片av| 日韩av一二三| 激情欧美一区二区三区| 在线精品一区二区| 国产精品日本一区二区三区在线 | 亚洲伊人精品酒店| 欧美黑人巨大videos精品| 私拍精品福利视频在线一区| 国产精品成人a在线观看| 日本不卡不码高清免费观看 | 国产精品xxx在线观看| 久久久亚洲一区| 久久视频一区| 国产亚洲精品自拍| 国产精品综合色区在线观看| 中文在线资源| 亚洲综合三区| 美腿丝袜在线亚洲一区| 日韩精品免费一区二区三区| 亚洲精品网址| 91大神在线观看线路一区| 成人精品动漫一区二区三区| 老鸭窝毛片一区二区三区| 国产精品久久久久久久久妇女| 国产乱人伦丫前精品视频 | 久久视频国产| 中文字幕一区二区三区在线视频| 精品国产网站| 欧美视频二区| 视频精品一区二区| 色88888久久久久久影院| 精品一区二区男人吃奶 | 久久精品免费一区二区三区| 日韩专区在线视频| 91九色精品| 亚洲精品电影| 欧美不卡在线| 日韩欧美精品| 久久人人99| 在线精品国产亚洲| 日本久久二区| 免费在线日韩av| 亚洲精品美女| 福利视频一区| 中文欧美日韩| 中文字幕人成乱码在线观看| 亚洲乱码久久| 成人久久久久|