成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

python 存儲json數據的操作

瀏覽:95日期: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 編程
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美精品三级日韩久久| 在线视频精品一区| 麻豆高清免费国产一区| 久热成人在线视频| 欧美三区不卡| 欧美无人高清视频在线观看| 久久久久久久久久久久电影| 免费在线观看一区二区三区| 欧美久久成人| 6080国产精品一区二区| 亚洲一区二区在线播放相泽| 色综合天天视频在线观看| 在线精品亚洲一区二区不卡| 国产精品对白交换视频| 国产精品一区二区在线观看不卡 | 国产精品福利一区二区| 高清国产午夜精品久久久久久| 国产精品久久久久久模特| 久久这里只有精品6| 久久精品av麻豆的观看方式| 国产伦精品一区二区三| 国产欧美日韩三级| 国产成a人亚洲| 久久久久久久尹人综合网亚洲| 中文在线一区二区| 国产成人自拍网| 久久综合伊人77777麻豆| 久久亚洲捆绑美女| 精品一区二区三区av| 羞羞答答国产精品www一本| 中文字幕在线不卡视频| 91在线国产观看| 欧美一区二区三区视频免费播放| 视频一区中文字幕| 99精品国产一区二区青青牛奶| 精品国产三级a在线观看| 狠狠色丁香九九婷婷综合五月| 国产精品久久国产愉拍| 久久免费的精品国产v∧| 人人狠狠综合久久亚洲| 一级成人国产| 亚洲天堂av老司机| 91丨九色丨蝌蚪富婆spa| 日韩午夜激情av| 激情五月播播久久久精品| 久久中文精品| 亚洲大型综合色站| 亚洲精品美女91| 国产欧美日韩中文久久| 91视频免费观看| 精品国产制服丝袜高跟| 国产精品一区二区果冻传媒| 91国偷自产一区二区三区成为亚洲经典| 久久婷婷一区二区三区| 成人黄色av网站在线| 日韩一区国产二区欧美三区| 激情综合色播激情啊| 欧美日韩一区精品| 免费成人av在线播放| 日本电影亚洲天堂一区| 日韩国产成人精品| 色婷婷综合久久| 日本欧美加勒比视频| 91电影在线观看| 午夜成人免费视频| 男人的天堂亚洲在线| 亚洲一区二区三区中文字幕| 精品不卡一区| 国产精品第13页| 一区二区自拍| 亚洲精品国产无天堂网2021| 99在线观看免费视频精品观看| 亚洲女与黑人做爰| 国内外成人免费视频| 亚洲欧美另类久久久精品| 99精品免费视频| 中文字幕一区二区三区四区不卡| 亚洲午夜久久久久久尤物| 久久九九影视网| 91麻豆免费观看| 中文字幕乱码亚洲精品一区| 在线观看亚洲| 91精品国产综合久久国产大片| 国产91富婆露脸刺激对白| 欧美不卡一区二区三区| 91丨porny丨最新| 国产精品欧美综合在线| 国产综合自拍| 日韩毛片在线免费观看| 亚洲精品欧洲精品| 亚洲一区二区三区四区在线免费观看 | 国产在线播放一区二区三区| 欧美精品三级日韩久久| 成人18精品视频| 国产欧美一区二区精品忘忧草 | 精品一区二区日韩| 日韩免费看的电影| 粉嫩蜜臀av国产精品网站| 久久综合国产精品| 欧美区国产区| 亚洲与欧洲av电影| 欧美中文字幕一区二区三区亚洲| 国产精品香蕉一区二区三区| 久久嫩草精品久久久久| 亚洲欧洲综合| 日韩精品成人一区二区三区| 欧美麻豆精品久久久久久| 成人av网在线| 国产精品久久久久桃色tv| 欧美一区二区视频网站| 欧美成人免费网站| 国产精品18久久久久久久久| 亚洲欧美日本韩国| 日韩丝袜情趣美女图片| 久久国产主播精品| 国产一区二区三区观看| 黄色成人免费在线| 99在线精品一区二区三区| 欧美福利在线| 粉嫩av一区二区三区| 在线精品视频免费播放| 欧美日韩dvd在线观看| 欧美激情资源网| 免费人成黄页网站在线一区二区| 狠狠色丁香九九婷婷综合五月| 国产精品欧美久久| 91久久中文| 久久久久久九九九九| 亚洲一区在线观看视频| 欧美性生活影院| 99精品视频一区| 奇米777欧美一区二区| 久久综合色一综合色88| 久久日韩精品| 欧美/亚洲一区| 日韩精品高清不卡| 中文字幕日韩av资源站| 在线观看91视频| 欧美日本亚洲| 青青草视频一区| 欧美韩国一区二区| 久久综合福利| 色综合一区二区| 午夜精品一区二区三区电影天堂| 日韩欧美www| 国产日韩欧美高清免费| 国产精品一线二线三线精华| 日韩毛片高清在线播放| 欧美日韩国产另类不卡| 伊人天天综合| 国产精品一区在线观看你懂的| 亚洲欧美激情插| 久久久久久久久久久久久久一区| 韩国成人精品a∨在线观看| 一区二区三区国产| 中文字幕五月欧美| 中文字幕+乱码+中文字幕一区| 精品久久一二三区| 欧美日本精品一区二区三区| 久久国产主播精品| 校园春色综合网| 国产婷婷精品| 99综合精品| 精品av久久久久电影| 黑丝一区二区| 欧美视频网站| 欧美+亚洲+精品+三区| 91色九色蝌蚪| 91蜜桃在线观看| 91视频91自| 欧美.日韩.国产.一区.二区| 99re成人在线| 欧美99久久| 91丝袜美腿高跟国产极品老师 | 中国av一区二区三区| 欧美精品一区二区久久久| 日韩三级精品电影久久久| 欧美日韩国产在线观看| 91国产免费看| 在线观看视频欧美| 久久久久久久久久久一区| 亚洲伊人观看| 久久都是精品| 国产精品久久久久久久久婷婷| 亚洲免费成人| 99伊人成综合| 亚洲在线观看| 久久福利影视| 欧美制服丝袜第一页| 欧美日韩一区二区三区高清| 欧美欧美午夜aⅴ在线观看| 欧美喷潮久久久xxxxx| 欧美日韩一区二区三区不卡| 欧美日韩你懂得| 欧美日韩一区二区电影| 欧美图区在线视频| 欧美日韩一级视频| 日韩视频国产视频| 久久亚洲一级片| 中文字幕巨乱亚洲|