亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python Yaml、Json、Dict之間的轉(zhuǎn)化

瀏覽:3日期:2022-07-07 18:16:06

Json To Dict

import jsonjsonData = ’{'a':1,'b':2,'c':3,'d':4,'e':5}’;print(jsonData)print(type(jsonData))text = json.loads(jsonData)print(text)print(type(text))#######################{'a':1,'b':2,'c':3,'d':4,'e':5}<class ’str’>{’a’: 1, ’b’: 2, ’c’: 3, ’d’: 4, ’e’: 5}<class ’dict’>

Dict To Json

import jsontextDict = {'a':1,'b':2,'c':3,'d':4,'e':5}print(textDict)print(type(textDict))# 字典轉(zhuǎn)化為jsontextJson = json.dumps(textDict)print(textJson)print(type(textJson))########################{’a’: 1, ’b’: 2, ’c’: 3, ’d’: 4, ’e’: 5}<class ’dict’>{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}<class ’str’>

Dict To Yaml

import yamldictText = { 'apiVersion': 'rbac.authorization.k8s.io/v1', 'kind': 'ClusterRoleBinding', 'metadata': { 'name': 'admin-user' }, 'roleRef': { 'apiGroup': 'rbac.authorization.k8s.io', 'kind': 'ClusterRole', 'name': 'cluster-admin' }, 'subjects': [ { 'kind': 'ServiceAccount', 'name': 'admin-user', 'namespace': 'kube-system' } ]}print(type(dictText))yamlText = yaml.dump(dictText)print(yamlText)print(type(yamlText))#############################3<class ’dict’>apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kube-system<class ’str’>

Json To Yaml

Json -> Dict -> Yaml

import json,yamljsonData = ’{'listDict':{'a':1,'b':2,'c':3,'d':4,'e':5}}’;print(jsonData)print(type(jsonData))# Json -> Dicttext = json.loads(jsonData)print(text)print(type(text))# Dict -> YamltextYaml = yaml.dump(text)print(textYaml)print(type(textYaml))#############################{'listDict':{'a':1,'b':2,'c':3,'d':4,'e':5}}<class ’str’>{’listDict’: {’a’: 1, ’b’: 2, ’c’: 3, ’d’: 4, ’e’: 5}}<class ’dict’>listDict: a: 1 b: 2 c: 3 d: 4 e: 5<class ’str’>

Yaml -> Dict

import yamlyamlText =’’’apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kube-system’’’print(yamlText)print(type(yamlText))# Yaml -> DictdictText = yaml.load(yamlText,Loader=yaml.FullLoader)print(dictText)print(type(dictText))#############################apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kube-system<class ’str’>{’apiVersion’: ’rbac.authorization.k8s.io/v1’, ’kind’: ’ClusterRoleBinding’, ’metadata’: {’name’: ’admin-user’}, ’roleRef’: {’apiGroup’: ’rbac.authorization.k8s.io’, ’kind’: ’ClusterRole’, ’name’: ’cluster-admin’}, ’subjects’: [{’kind’: ’ServiceAccount’, ’name’: ’admin-user’, ’namespace’: ’kube-system’}]}<class ’dict’>

關(guān)于 yaml -> dict 需要注意

yaml 5.1版本后棄用了yaml.load(file)這個(gè)用法,因?yàn)橛X(jué)得很不安全,5.1版本之后就修改了需要指定Loader,通過(guò)默認(rèn)加載​​器(FullLoader)禁止執(zhí)行任意函數(shù)

import yamlyamlText =’’’apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kube-system’’’print(yamlText)print(type(yamlText))# yaml -> dict 沒(méi)有設(shè)置 ,Loader=yaml.FullLoader 執(zhí)行后如下含有警告dictText = yaml.load(yamlText)print(dictText)print(type(dictText))#########################apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: admin-userroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-adminsubjects:- kind: ServiceAccount name: admin-user namespace: kube-system<class ’str’>/Users/yyj/Desktop/Project/HelloBike/TimeCalc/pydict2json/dict2json.py:88: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. dictText = yaml.load(yamlText){’apiVersion’: ’rbac.authorization.k8s.io/v1’, ’kind’: ’ClusterRoleBinding’, ’metadata’: {’name’: ’admin-user’}, ’roleRef’: {’apiGroup’: ’rbac.authorization.k8s.io’, ’kind’: ’ClusterRole’, ’name’: ’cluster-admin’}, ’subjects’: [{’kind’: ’ServiceAccount’, ’name’: ’admin-user’, ’namespace’: ’kube-system’}]}<class ’dict’>

1、警告提示

YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the defaultLoader is unsafe. Please read https://msg.pyyaml.org/load for full details.

2.主要原因

yaml 5.1版本后棄用了yaml.load(file)這個(gè)用法,因?yàn)橛X(jué)得很不安全,5.1版本之后就修改了需要指定Loader,通過(guò)默認(rèn)加載​​器(FullLoader)禁止執(zhí)行任意函數(shù)

3.解決方法

1.yaml.load(f, Loader=yaml.FullLoader)

2.yaml.warnings({’YAMLLoadWarning’: False}) # 全局設(shè)置警告,不推薦

Loader的幾種加載方式

BaseLoader--僅加載最基本的YAML SafeLoader--安全地加載YAML語(yǔ)言的子集。建議用于加載不受信任的輸入。 FullLoader--加載完整的YAML語(yǔ)言。避免任意代碼執(zhí)行。這是當(dāng)前(PyYAML 5.1)默認(rèn)加載器調(diào)用yaml.load(input)(發(fā)出警告后)。 UnsafeLoader--(也稱(chēng)為L(zhǎng)oader向后兼容性)原始的Loader代碼,可以通過(guò)不受信任的數(shù)據(jù)輸入輕松利用。

至此,Yaml 、Json 、Dict 之間的轉(zhuǎn)化 介紹完了

以上就是python Yaml 、Json 、Dict 之間的轉(zhuǎn)化的詳細(xì)內(nèi)容,更多關(guān)于python Yaml 、Json 、Dict的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 在线观看91精品国产不卡免费 | 2021年韩国r级理论片在线观看 | 国产婷婷色综合成人精品 | 久久国产福利 | 高清色黄毛片一级毛片 | 在线免费看黄的网站 | 成人精品美女隐私漫画 | 免费看污又色又爽又黄视频 | 欧美在线二区 | 轻轻碰在线视频免费视频 | 尤物免费视频 | 91一区二区在线观看精品 | 欧美一欧美一区二三区性 | 国语对白刺激做受xxxxx在线 | 日本亚欧乱色视频在线系列 | 欧美成人免费草草影院 | 天天爱夜夜操 | 亚洲一色 | 成人手机看片 | 1024免费福利永久观看网站 | 国内女高中生一级毛片 | 日韩美一区二区三区 | 亚洲在线免费 | 最新亚洲一区二区三区四区 | 黄色网址免费观看 | 国内精品视频 在线播放 | 伊甸园精品视频网站 | 成人午夜免费剧场 | 国产一级黄色网 | 国产在线高清视频 | 久久欧洲视频 | 一级黄色a级片 | 免费人成又黄又爽的视频在线 | 欧美精品白嫩bbwbbwbbw | 黄色的视频免费观看 | 国产乱淫视频 | 国产美女激情 | 国产亚洲精品精品国产亚洲综合 | 日日摸日日碰日日狠狠 | 国产激情一级毛片久久久 | 国产又黄又免费aaaa视频 |