golang读取各种配置文件(ini、json、yaml)

目录
  • viper读取ini文件
  • viper读取json文件
  • viper读取yaml文件

日常项目中,读取各种配置文件是避免不了的,这里介绍一个能读取多种配置文件的库,viper

viper读取ini文件

config := viper.New()
config.AddConfigPath("./conf/")  // 文件所在目录
config.SetConfigName("b")        // 文件名
config.SetConfigType("ini")      // 文件类型

if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出错..")
    }
}

host := config.GetString("redis.host")  // 读取配置
fmt.Println("viper load ini: ", host)

b.ini文件如下

[mysql]
username='root'
password='123456'

[redis]
host='127.0.0.1'
poet=3306

[mongodb]
user='admin'
password='admin'

viper读取json文件

config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("c")
config.SetConfigType("json")

if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出错..")
    }
}

version := config.GetString("version")
origin := config.GetString("host.origin")

fmt.Println(version)
fmt.Println(origin)

// 读取到map中
host := config.GetStringMapString("host")
fmt.Println(host)
fmt.Println(host["origin"])
fmt.Println(host["port"])

allSettings := config.AllSettings()
fmt.Println(allSettings)

c.json文件如下

{
  "version": "2.0",
  "secret": "footmark",
  "host": {
    "origin": "http://www.baidu.com",
    "port": 8080
  }
}

viper读取yaml文件

config := viper.New()
config.AddConfigPath("./conf/")
config.SetConfigName("a")
config.SetConfigType("yaml")

if err := config.ReadInConfig(); err != nil {
    if _, ok := err.(viper.ConfigFileNotFoundError); ok {
        fmt.Println("找不到配置文件..")
    } else {
        fmt.Println("配置文件出错..")
    }
}

host := config.GetString("database.host")
fmt.Println("viper load yml: ", host)

allSettings := config.AllSettings()
fmt.Println(allSettings)

a.yaml文件如下

database:
  host: 127.0.0.1
  user: root
  dbname: test
  pwd: 123456

viper常用方法

// viper 常用读取配置的方法
Get(key string) : interface{}
GetBool(key string) : bool
GetFloat64(key string) : float64
GetInt(key string) : int
GetIntSlice(key string) : []int
GetString(key string) : string
GetStringMap(key string) : map[string]interface{}
GetStringMapString(key string) : map[string]string
GetStringSlice(key string) : []string
GetTime(key string) : time.Time
GetDuration(key string) : time.Duration
IsSet(key string) : bool
AllSettings() : map[string]interface{}

项目代码

到此这篇关于golang读取各种配置文件(ini、json、yaml)的文章就介绍到这了,更多相关golang读取配置文件 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • golang 使用 viper 读取自定义配置文件

    viper 支持 Yaml.Json. TOML.HCL 等格式,读取非常的方便. viper 官网有案例:https://github.com/spf13/viper go get github.com/spf13/viper 创建 config.yaml 文件 database: driver: mysql host: 127.0.0.1 port: 3306 username: blog dbname: blog password: 123456 建一个 config.go 用于初始化配置

  • golang读取各种配置文件(ini、json、yaml)

    目录 viper读取ini文件 viper读取json文件 viper读取yaml文件 日常项目中,读取各种配置文件是避免不了的,这里介绍一个能读取多种配置文件的库,viper viper读取ini文件 config := viper.New() config.AddConfigPath("./conf/") // 文件所在目录 config.SetConfigName("b") // 文件名 config.SetConfigType("ini"

  • SpringBoot读取自定义配置文件方式(properties,yaml)

    目录 一.读取系统配置文件application.yaml 二.读取自定义配置文件properties格式内容 三.读取自定义配置文件yaml格式内容 四.其他扩展内容 一.读取系统配置文件application.yaml 1.application.yaml配置文件中增加一下测试配置 testdata: animal: lastName: 动物 age: 18 boss: true birth: 2022/02/22 maps: {key1:value1,key2:value2} list:

  • Python常用配置文件ini、json、yaml读写总结

    本文参考文章,出于学习目的,写本文. 开发项目时,为了维护一些经常需要变更的数据,比如数据库的连接信息.请求的url.测试数据等,需要将这些数据写入配置文件,将数据和代码分离,只需要修改配置文件的参数,就可以快速完成环境的切换或者测试数据的更新,常用的配置文件格式有ini.json.yaml等,下面简单给大家介绍下,Python如何读写这几种格式的文件. 1.ini格式 ini 即 Initialize ,是Windows中常用的配置文件格式,结构比较简单,主要由节(Section).键(key

  • python读取配置文件方式(ini、yaml、xml)

    零.前言 python代码中配置文件是必不可少的内容.常见的配置文件格式有很多中:ini.yaml.xml.properties.txt.py等. 一.ini文件 1.1 ini文件的格式 ; 注释内容 [url] ; section名称 baidu = https://www.jb51.net port = 80 [email] sender = 'xxx@qq.com' 注意section的名称不可以重复,注释用分号开头. 1.2 读取 configparser python自带的confi

  • Python配置文件管理之ini和yaml文件读取的实现

    目录 1. 引言 2. 如何选择配置文件的格式 3. INI文件示例 4. YAML文件示例 5. 使用Cofigureparser读取ini文件 6. yaml文件读取示例 7. 总结 1. 引言 当我们设计软件时,我们通常会花费大量精力来编写高质量的代码.但这往往还不够,一个好的软件还应该考虑其整个系统,如测试.部署.网络等.其中最重要的一个方面是配置管理. 良好的配置管理应允许在任何环境中执行软件而不更改代码.最常见的配置包括数据库认证配置.部署服务器的主机名.动态参数等.在本文中,我想与

  • go学习笔记读取consul配置文件详解

    目录 新建yaml文件 读取远程配置 新建yaml文件 在上文我们的 go学习笔记:使用 consul 做服务发现和配置共享 这里我们单独来用viper实现读取consul的配置, 我习惯与用yaml格式, 所以 首先 新建yaml文件 store: book: - author: john price: 10 - author: ken price: 12 bicycle: color: red price: 19.95 读取远程配置 可以直接调用viper.AddRemoteProvider

  • python对配置文件.ini进行增删改查操作的方法示例

    前言 本文主要给大家介绍的是关于python对配置文件.ini增删改查操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 一.先导入configobj库文件 可以用pip直接安装 #!/usr/bin/python # -*- coding: utf-8 -*- import json from configobj import ConfigObj 二.增添section 这里是前后端分离的例子,从前端接收json数据,然后写入配置文件中 def add(self,

  • 详解Spring-boot中读取config配置文件的两种方式

    了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息. Spring-Boot读取配置文件的方式: 一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件applicati

  • Python读取properties配置文件操作示例

    本文实例讲述了Python读取properties配置文件操作.分享给大家供大家参考,具体如下: 工作需要将Java项目的逻辑改为python执行,Java的很多配置文件都是.properties的,文件内容的格式是"键.键.键...=值"的格式例如A.B.C=value1,D.F=value2等.并且"#"用来注视.python没有专门处理properties格式的包,只有处理标准的ini格式的包.所以需要自己写一个python程序来处理.不说了上程序. 这里参考

  • Python实现读取Properties配置文件的方法

    本文实例讲述了Python实现读取Properties配置文件的方法.分享给大家供大家参考,具体如下: JAVA本身提供了对于Properties文件操作的类,项目中的很多配置信息都是放在了Properties文件.但是Python并没有提供操作Properties文件的库,所以,自己动手写个一个可以加载Properties文件的脚本. class Properties: fileName = '' def __init__(self, fileName): self.fileName = fi

随机推荐