zoukankan      html  css  js  c++  java
  • python接口自动化读取json、yaml、ini文件

    import yaml
    import json
    from configparser import ConfigParser
    from common.logger import logger
    
    
    class MyConfigParser(ConfigParser):
        # 重写 configparser 中的 optionxform 函数,解决 .ini 文件中的 键option 自动转为小写的问题
        def __init__(self, defaults=None):
            ConfigParser.__init__(self, defaults=defaults)
    
        def optionxform(self, optionstr):
            return optionstr
    
    class ReadFileData():
    
        def __init__(self):
            pass
    
        def load_yaml(self, file_path):
            logger.info("加载 {} 文件......".format(file_path))
            with open(file_path, encoding='utf-8') as f:
                data = yaml.safe_load(f)
            logger.info("读到数据 ==>>  {} ".format(data))
            return data
    
        def load_json(self, file_path):
            logger.info("加载 {} 文件......".format(file_path))
            with open(file_path, encoding='utf-8') as f:
                data = json.load(f)
            logger.info("读到数据 ==>>  {} ".format(data))
            return data
    
        def load_ini(self, file_path):
            logger.info("加载 {} 文件......".format(file_path))
            config = MyConfigParser()
            config.read(file_path, encoding="UTF-8")
            data = dict(config._sections)
            # print("读到数据 ==>>  {} ".format(data))
            return data
    
    ini_data = ReadFileData().load_ini('C:\Users\heguanghua\Downloads\pytestDemo-master\config\setting.ini')
    print(ini_data)
    json_data = ReadFileData().load_json('C:\Users\heguanghua\Downloads\pytestDemo-master\data\test_data.json')
    print(json_data)
    yml_data = ReadFileData().load_yaml('C:\Users\heguanghua\Downloads\pytestDemo-master\data\api_test_data.yml')
    print(yml_data)
    

    运行结果:

    D:UsersheguanghuaAppDataLocalProgramsPythonPython35python.exe C:/Users/heguanghua/Downloads/pytestDemo-master/common/read_data.py
    {'host': OrderedDict([('api_root_url', 'http://127.0.0.1:8000')]), 'mysql': OrderedDict([('MYSQL_HOST', '172.20.0.91'), ('MYSQL_PORT', '3305'), ('MYSQL_USER', 'root'), ('MYSQL_PASSWD', '123456'), ('MYSQL_DB', 'demo')])}
    [2020-07-10 15:25:13,371][read_data.py 35][INFO]: 加载 C:UsersheguanghuaDownloadspytestDemo-masterconfigsetting.ini 文件......
    {'user1': {'account': 'admin', 'password': '654321', 'message': '登录成功'}, 'user2': {'account': 'admins', 'password': '654321', 'message': '登录成功'}}
    [2020-07-10 15:25:13,372][read_data.py 28][INFO]: 加载 C:UsersheguanghuaDownloadspytestDemo-masterdata	est_data.json 文件......
    [2020-07-10 15:25:13,372][read_data.py 31][INFO]: 读到数据 ==>>  {'user1': {'account': 'admin', 'password': '654321', 'message': '登录成功'}, 'user2': {'account': 'admins', 'password': '654321', 'message': '登录成功'}} 
    [2020-07-10 15:25:13,372][read_data.py 21][INFO]: 加载 C:UsersheguanghuaDownloadspytestDemo-masterdataapi_test_data.yml 文件......
    {'test_update_user': [[4, '123456', '13500010014', '1', '深圳市宝安区', True, 0, '修改用户信息成功'], [4, '123456', '1350001001', '1', '深圳市宝安区', False, 4008, '手机号格式不正确'], [111, '123456', '13500010014', '1', '深圳市宝安区', False, 4005, '用户ID不存在']], 'test_get_all_user_info': [[True, '999999', '查询成功!']], 'test_login_user': [['wintest', '123456', True, 0, '登录成功'], ['测试test', '123456', False, 1003, '用户名不存在']], 'test_delete_user': [['测试test', True, 0, '删除用户信息成功'], ['wintest3', False, 3006, '该用户不允许删除']], 'test_get_get_one_user_info': [['wintest4', True, 0, '查询成功'], ['wintest1111', False, '1004', '查不到相关用户']], 'test_register_user': [['测试test', '123456', '13599999999', '1', '深圳市宝安区', True, 0, '注册成功'], ['测试test', '123456', '13599999999', '3', '深圳市宝安区', False, 2003, '输入的性别只能是 0(男) 或 1(女)'], ['wintest4', '123456', '13599999999', '1', '深圳市宝安区', False, 2002, '用户名已存在']]}
    [2020-07-10 15:25:13,385][read_data.py 24][INFO]: 读到数据 ==>>  {'test_update_user': [[4, '123456', '13500010014', '1', '深圳市宝安区', True, 0, '修改用户信息成功'], [4, '123456', '1350001001', '1', '深圳市宝安区', False, 4008, '手机号格式不正确'], [111, '123456', '13500010014', '1', '深圳市宝安区', False, 4005, '用户ID不存在']], 'test_get_all_user_info': [[True, '999999', '查询成功!']], 'test_login_user': [['wintest', '123456', True, 0, '登录成功'], ['测试test', '123456', False, 1003, '用户名不存在']], 'test_delete_user': [['测试test', True, 0, '删除用户信息成功'], ['wintest3', False, 3006, '该用户不允许删除']], 'test_get_get_one_user_info': [['wintest4', True, 0, '查询成功'], ['wintest1111', False, '1004', '查不到相关用户']], 'test_register_user': [['测试test', '123456', '13599999999', '1', '深圳市宝安区', True, 0, '注册成功'], ['测试test', '123456', '13599999999', '3', '深圳市宝安区', False, 2003, '输入的性别只能是 0(男) 或 1(女)'], ['wintest4', '123456', '13599999999', '1', '深圳市宝安区', False, 2002, '用户名已存在']]} 
    
    进程已结束,退出代码0
    

    详见此链接:https://blog.csdn.net/qq_41891186/article/details/103762138

  • 相关阅读:
    安卓学习-activity-窗体调用和传参
    安卓学习-activity-PreferenceActivity
    安卓学习-activity-ExpandableListActivity
    安卓学习-activity-LauncherActivity
    安卓学习-界面-事件-AsyncTask
    安卓学习-界面-事件-handler
    安卓学习-界面-事件-Configuration
    安卓学习-界面-ui-菜单ActionBar
    安卓学习-界面-ui-普通菜单
    C++实现成绩管理模拟系统
  • 原文地址:https://www.cnblogs.com/hghua/p/13279404.html
Copyright © 2011-2022 走看看