JS-YAML
JSON To YAML
yaml配置文件
config.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
Python读取yaml配置文件
import yaml
import os
cfg = open('config.yml', encoding='utf-8')
cfg_content = cfg.read()
cfg.close()
# 装载yaml
data = yaml.load(cfg_content, Loader=yaml.FullLoader)
print(data)
print(type(data)) # <class 'dict'>
print(data.get('version'))
print(data['version'])
print(data.get('services').get('web').get('ports'))
print(data['services']['web']['ports'])
Loader可用选项: github.com/yaml/pyyaml…
Golang读取yaml配置文件
package main
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
)
func main() {
data, err := ioutil.ReadFile("config.yml")
if err != nil {
panic(err)
}
// 定义配置文件结构
type Config struct {
Version string `yaml:"version"`
Services struct {
Web struct {
Build string `yaml:"build"`
Ports []string `yaml:"ports"`
}
Redis struct {
Image string `yaml:"image"`
}
}
}
var config Config
// 反序列化yaml配置文件到结构体
if err := yaml.Unmarshal(data, &config); err != nil {
panic(err)
}
fmt.Println(config.Version)
fmt.Println(config.Services.Web.Ports)
}
Laravel读取yaml配置文件
安装symfony的yaml组件
composer require symfony/yaml
app/Http/config.yml
<?php
namespace App\Http\Controllers;
use Symfony\Component\Yaml\Yaml;
class TestController extends Controller {
public function index(){
// app/Http/config.yml
$config = (new Yaml())->parseFile(dirname(__DIR__) . "/config.yml");
return $config;
}
}