配置文件有很多种,如JSON,properties,conf,xml等。

除非需要跟别的语言进行交互,python本身是完全可以取代所有配置文件的。使用python进行配置可以使用非常灵活地执行一些逻辑运算,这点是JSON、XML等格式所无法比拟的,但是配置文件中掺入太多的逻辑并不是好方法。

将python版的配置文件转化为其它格式非常简单,只需要写一个函数即可

首先创建一个config.py文件,里面的配置包含int,str,dict,list等类型的数值。

config.py

one = 1
two = 2
three = one + two
four = {
"one": 1,
"two": 2,
"three": 3
}
five = "天下大势为我所控"
six=[one,two,three]

然后创建load.py,实现to_dict函数

import config
import json def to_dict(config):
ans = dict()
for i in dir(config):
if i.startswith("__"): continue
x = getattr(config, i)
if type(x) in (dict, int, str, float,list):
ans[i] = x
return ans class config2:
one = 1
two = 2
three = one + two
four = {
'one': 1,
'two': 2
}
five = "天下大势为我所控"
six = [one, two, three] print(json.dumps(to_dict(config), ensure_ascii=0))
print(json.dumps(to_dict(config2), ensure_ascii=0))

python配置文件转dict的更多相关文章

  1. python基础之dict、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

  2. Python中的dict和set

    1.dict定义: Python写一个dict如下: >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d[' ...

  3. python基础——使用dict和set

    python基础——使用dict和set dict Python内置了字典:dict的支持,dict全称dictionary,在其它语言中也称为map(映射),使用键-值(key-value)存储,具 ...

  4. 第四篇:python基础之dict、set及字符

    python基础之dict.set及字符   python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射 ...

  5. python字符串格式化--dict传参

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python字符串格式化--dict传参 print "I'm %(name)s. I'm %(a ...

  6. Python学习——使用dict和set

    dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...

  7. Python学习笔记—Dict和set

    dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...

  8. Python 内置类型 dict, list,线程安全吗

    近段时间发现一个 Python 连接数据库的连接是线程不安全的,结果惹得我哪哪儿都怀疑变量的多线程是否安全的问题,今天终于找到了正确答案,那就是 Python 内置类型 dict,list ,tupl ...

  9. Python基础之dict和set的使用

    dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言种也称为map,使用键-值(key-value)存储,具有极快的查找速度. 举个例子,假设要根据同学的名字 ...

随机推荐

  1. Android开发Tips(5)

    欢迎Follow我的GitHub, 关注我的CSDN. 介绍关于Android的一些有趣的小知识点. 本文是第五篇了, 差点儿一周一篇, 欢迎阅读. 其余第一篇, 第二篇, 第三篇, 第四篇. 1. ...

  2. 转:利用Eclipse CDT 阅读C/C++代码

    转自: https://www.oschina.net/question/234345_41419 排版与说明都很不错,推荐一看.

  3. PC 微信扫码登陆

    目录 1.注册微信开发平台 2.微信开发平台添加网站应用 3.PC微信登录流程介绍 4.获取用户基本信息(UnionID机制) 1.注册微信开发平台 官网网址 自行注册,需要注意的是注册邮箱号不用与腾 ...

  4. [Canvas]New Running Dog

    欲看效果请下载后用Chrome浏览器打开index.html观看,下载地址:https://files.cnblogs.com/files/xiandedanteng/51-NewRunningDog ...

  5. HK Openstack Summit 归来有感

    4天的Icehouse openstack Summit终于结束,从香港又回到了北京,我们的产品反响相当不错,吸引了很多的注意力和商谈.可是实际上我最近过得很憋屈,心灰意冷,没有了当初那么拼命的动力. ...

  6. Office办公 WPS如何设置页边距

    打开页眉页脚,在选项里面可以设置顶部的一行文字距离边界的距离   此外在页面布局,页边距也可以查看和修改                        

  7. 【转】Andorid中Intent的使用-返回数据给上一个活动

    第一个Activity  A启动另外一个Activity B,B返回数据给A ============================================================= ...

  8. var, object, dynamic的区别以及使用

    var, object, dynamic的区别以及使用 阅读目录: 一. 为什么是它们三个 二. 能够任意赋值的原因 三. dynamic的用法 四. 使用dynamic的注意事项 拿这三者比较的原因 ...

  9. ZH奶酪:PHP 使用DOMDocument抓取网页

    原文链接:http://blog.csdn.net/xyzhaopeng/article/details/6626340 从一个HTML页面的一个表格中提取数据并且将这个数据整理出来加入到MySQL数 ...

  10. Netcore使用MailKit进行邮件发送

    public void TestSendMailDemo() { var message = new MimeKit.MimeMessage(); message.From.Add(new MimeK ...