Python基础(YAML与JSON转换)

使用模块:json,yaml(PyYaml)

yaml测试内容

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
      name: nginx
    spec:
      containers:
      - image: ntp.wei.club/nginx/nginx:latest
        name: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: storage
          subPath: nginx
      volumes:
      - name: storage
        persistentVolumeClaim:
          claimName: nginx

json测试内容

{
    "apiVersion": "extensions/v1beta1",
    "kind": "Deployment",
    "metadata": {
        "name": "nginx",
        "labels": {
            "app": "nginx"
        }
    },
    "spec": {
        "replicas": 2,
        "selector": {
            "matchLabels": {
                "app": "nginx"
            }
        },
        "template": {
            "metadata": {
                "name": "nginx",
                "labels": {
                    "app": "nginx"
                }
            },
            "spec": {
                "containers": [
                    {
                        "name": "nginx",
                        "image": "ntp.wei.club/nginx/nginx:latest",
                        "ports": [
                            {
                                "containerPort": 80
                            }
                        ],
                        "volumeMounts": [
                            {
                                "mountPath": "/usr/share/nginx/html",
                                "subPath": "nginx",
                                "name": "storage"
                            }
                        ]
                    }
                ],
                "volumes": [
                    {
                        "name": "storage",
                        "persistentVolumeClaim": {
                            "claimName": "nginx"
                        }
                    }
                ]
            }
        }
    }
}

YAML转JSON

思路:

  1. 使用yaml模块中的load函数将yaml转换为dict格式
  2. 使用json模块中的dumps函数将dict转换为json格式

eg:

import json,yaml
test_file = open(test_yaml_file,"r")
#先将yaml转换为dict格式
generate_dict = yaml.load(test_file,Loader=yaml.FullLoader)
generate_json = json.dumps(generate_dict,sort_keys=False,indent=4,separators=(',',': '))
print(generate_json)

JSON转YAML

思路:

  1. 使用json模块中的loads模块将json转换为dict
  2. 使用yaml模块中的dump函数将dict转换为yaml格式
import yaml,json
test_file = open(test_json_file,"r")
test_json = json.loads(test_file)
test_dict = test_json
test_yaml = yaml.dump(test_dict)
#或者直接转换为文件
new_yaml_file = open("new_file","w")
yaml.safe_dump(test_dict,stream=new_yaml_file,default_flow_style=False)
发布了62 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41674452/article/details/104016355
今日推荐