--- # develop(鍵值對,值默認爲字符串)
basic:
# 地址參數
request_url: ""
get_userinfo: ""
topcardweb_url: ""
swagger_url: ""
# 賬戶密碼
mortgage_username: ""
mortgage_password: ""
# 進件參數
ProvinceCode: ""
CityCode: ""
AreaCode: ""
Address: ""
productId: ""
merchantId: ""
storeId: ""
custMgrId: ""
loanPeriod: ""
sfz_filepicture_dict1:
{
"fileKind": "1",
# "fileUrl": "http://, # 人像
"fileUrl": "http://", # 人像
"fileName": "身份證正面"
}
sfz_filepicture_dict2:
{
"fileKind": "2",
# "fileUrl": "http://",
"fileUrl": "http://",
"fileName": "身份證背面"
}
# 合同參數
# preCreditApplySave_compactId: ""
# preCreditApplySave_compactType: ""
# commitPreCreditInfo_compactId: ""
# commitPreCreditInfo_compactType: ""
queryCompactDetail_compactId: ""
queryCompactDetail_compactType: ""
commitLoanApply_compactId: ""
commitLoanApply_compactType: ""
reSignContractList_compactId: ""
reSignContractList_compactType: ""
affiliatedAuthContract_compactId: ""
affiliatedAuthContract_compactType: ""
# compactId: "4387318610540437635"
# compactType: "90"
database_info:
database_name: "mysql"
database_prefix: ""
host: ""
username: ""
password: ""
port: ""
database_differences: ""
#!/usr/bin/env/python3
# -*- coding:utf-8 -*-
'''
Author:leo
Date&Time:2020/5/4 and 10:24
Project:Python3
FileName:comment_txt.py
Description:
1.yaml [ˈjæməl]: Yet Another Markup Language :另一種標記語言。
yaml 是專門用來寫配置文件的語言,非常簡潔和強大,之前用ini也能寫配置文件,看了yaml後,發現這個更直觀,更方便,有點類似於json格式
2.yaml基本語法規則:
大小寫敏感
使用縮進表示層級關係
縮進時不允許使用Tab鍵,只允許使用空格。
縮進的空格數目不重要,只要相同層級的元素左側對齊即可
#表示註釋,從這個字符一直到行尾,都會被解析器忽略,這個和python的註釋一樣
3.yaml支持的數據結構有三種:
對象:鍵值對的集合,又稱爲映射(mapping)/ 哈希(hashes) / 字典(dictionary)
數組:一組按次序排列的值,又稱爲序列(sequence) / 列表(list)
純量(scalars):單個的、不可再分的值。字符串、布爾值、整數、浮點數、Null、時間、日期
4.多個文檔在一個yaml文件,使用 --- 分隔方式來分段
load_all讀取
'''
class Yaml_config():
def yaml_write(self, data=None, mode='a+', yamlPath="D:\Mytest\Python3\Python3\...\...\config\config.yaml"):
"""
@param data: 寫入的數據(字典、列表、字符串)
@param yamlPath: 生成文件的路徑
@return: f.read()對象(dict)
"""
import yaml
with open(yamlPath, mode=mode, encoding='utf-8') as file_write, open(yamlPath, 'r', encoding='utf-8') as file_read:
yaml.dump(data, file_write) # 裝載數據
read_all = file_read.read() # 讀取文件
load_all = yaml.safe_load(read_all) # 加載數據
print(f"----寫入配置文件:{type(load_all)}----\n{load_all}\n") # 打印數據
return load_all
def yaml_read(self, readnum="load_all", yamlPath="D:\Mytest\Python3\Python3\...\...\config\config.yaml"):
import yaml
f = open(yamlPath, 'r', encoding='utf-8')
if readnum == "load_one":
read_all = f.read().replace("---", "").replace("'", '''"''') # 讀取文件
load_one = yaml.safe_load(read_all)
# print(f"----讀出配置文件:{type(load_one)}\n{load_one}") # 打印數據
return load_one
elif readnum == "load_all":
read_all = f.read() # 讀取文件
load_all = [i for i in yaml.safe_load_all(read_all)]
# print(f"----讀出配置文件:{type(load_all)}\n{load_all}") # 打印數據
return load_all
def write_configparser(self, yamlPath="D:\Mytest\Python3\Python3\...\...sit\config\\test.ini"):
import configparser
config = configparser.ConfigParser()
config.add_section("AXIS_0")
config.set("AXIS_0", "time", "500")
config.set("AXIS_0", "acc", "10")
config.add_section("AXIS_1")
config.set("AXIS_1", "time", "250")
config.write(open(yamlPath, "w"))
if __name__ == '__main__':
# 寫入
# dev_database = {"dev_database_info": {"host": "", "port": "", "database_name": "", "database_prefix": "", "username": "", "password": ""}}
# Yaml().yaml_write(data=dev_database, mode='a+')
# # # 讀出
# load_one = Yaml().yaml_read(readnum="load_one")
cofing_load_all = Yaml_config().yaml_read(readnum="load_all")
for i in cofing_load_all:
print(type(i), i)
cofing_dict = cofing_load_all[2]
# get_basic = cofing_load_all[2]['basic']['request_url']
# get_database = cofing_load_all[2]['database_info']['database_name']
get_dev = cofing_dict['database_info']['database_prefix']
get_basic = cofing_dict['basic']['sfz_filepicture_dict1']["fileUrl"]
get_database = cofing_dict['database_info']['database_differences']
database = {
"host": cofing_dict['database_info']['host'],
"port": cofing_dict['database_info']['port'],
"database_name": cofing_dict['database_info']['database_name'],
"database_prefix": cofing_dict['database_info']['database_prefix'],
"username": cofing_dict['database_info']['username'],
"password": cofing_dict['database_info']['password'],
"database_differences": cofing_dict['database_info']['database_differences'],
"database_differences1": cofing_dict['basic']['sfz_filepicture_dict1']["fileUrl"]
}
print(type(database), database)
# print(type(get_basic), get_basic)
# print(type(load_all[cofing_dict['database_info']['database_prefix'] + "_" + "database_info']['database_name']), load_all[cofing_dict['database_info']['database_prefix'] + "_" + "database_info']['database_name'])
# print(type(load_all['timeout']), load_all['timeout'])