分享

python接口自动化读取json、yaml、ini文件

 昵称71011036 2020-08-10
  1. import yaml
  2. import json
  3. from configparser import ConfigParser
  4. from common.logger import logger
  5. class MyConfigParser(ConfigParser):
  6. # 重写 configparser 中的 optionxform 函数,解决 .ini 文件中的 键option 自动转为小写的问题
  7. def __init__(self, defaults=None):
  8. ConfigParser.__init__(self, defaults=defaults)
  9. def optionxform(self, optionstr):
  10. return optionstr
  11. class ReadFileData():
  12. def __init__(self):
  13. pass
  14. def load_yaml(self, file_path):
  15. logger.info("加载 {} 文件......".format(file_path))
  16. with open(file_path, encoding='utf-8') as f:
  17. data = yaml.safe_load(f)
  18. logger.info("读到数据 ==>> {} ".format(data))
  19. return data
  20. def load_json(self, file_path):
  21. logger.info("加载 {} 文件......".format(file_path))
  22. with open(file_path, encoding='utf-8') as f:
  23. data = json.load(f)
  24. logger.info("读到数据 ==>> {} ".format(data))
  25. return data
  26. def load_ini(self, file_path):
  27. logger.info("加载 {} 文件......".format(file_path))
  28. config = MyConfigParser()
  29. config.read(file_path, encoding="UTF-8")
  30. data = dict(config._sections)
  31. # print("读到数据 ==>> {} ".format(data))
  32. return data
  33. ini_data = ReadFileData().load_ini('C:\\Users\\heguanghua\\Downloads\\pytestDemo-master\\config\\setting.ini')
  34. print(ini_data)
  35. json_data = ReadFileData().load_json('C:\\Users\\heguanghua\\Downloads\\pytestDemo-master\\data\\test_data.json')
  36. print(json_data)
  37. yml_data = ReadFileData().load_yaml('C:\\Users\\heguanghua\\Downloads\\pytestDemo-master\\data\\api_test_data.yml')
  38. print(yml_data)

运行结果:

  1. D:\Users\heguanghua\AppData\Local\Programs\Python\Python35\python.exe C:/Users/heguanghua/Downloads/pytestDemo-master/common/read_data.py
  2. {'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')])}
  3. [2020-07-10 15:25:13,371][read_data.py 35][INFO]: 加载 C:\Users\heguanghua\Downloads\pytestDemo-master\config\setting.ini 文件......
  4. {'user1': {'account': 'admin', 'password': '654321', 'message': '登录成功'}, 'user2': {'account': 'admins', 'password': '654321', 'message': '登录成功'}}
  5. [2020-07-10 15:25:13,372][read_data.py 28][INFO]: 加载 C:\Users\heguanghua\Downloads\pytestDemo-master\data\test_data.json 文件......
  6. [2020-07-10 15:25:13,372][read_data.py 31][INFO]: 读到数据 ==>> {'user1': {'account': 'admin', 'password': '654321', 'message': '登录成功'}, 'user2': {'account': 'admins', 'password': '654321', 'message': '登录成功'}}
  7. [2020-07-10 15:25:13,372][read_data.py 21][INFO]: 加载 C:\Users\heguanghua\Downloads\pytestDemo-master\data\api_test_data.yml 文件......
  8. {'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, '用户名已存在']]}
  9. [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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多