它使使用pyyaml更加方便。

enhancedyaml的Python项目详细描述


增强的pyyaml

它使pyyaml更加方便,并且避免了重复的yaml数据。

功能如下:

  • 按deafult,使用类的名称作为yamlobject的yaml_标记
  • 将锚加载为yamlobject实例的属性
  • 将yamlobject实例的属性anchor转储为anchor&;name

安装

您可以通过pypi安装它,

sudo pip install enhancedyaml

或者手动下载。

示例

这是yaml文件:

# examples/enhanced_data.yaml

%YAML 1.1
---
examples:
    - !Example &first
        data: I am the first one.
    - !Example &second
        data: I am the second one.
order:
    - \*first
    - \*second

创建一个yamlobject而不指定yaml标签
import enhancedyaml

class Example(enhancedyaml.YAMLObject): pass

加载的yaml

代码:

from pprint import pprint

data = enhancedyaml.load(open('data/enhanced_data.yaml'))
pprint(data)

输出:

{'examples': [<__main__.Example object at 0x7fa825fb4fd0>,

              <__main__.Example object at 0x7fa825fb4cd0>],
 'order': [<__main__.Example object at 0x7fa825fb4fd0>,
           <__main__.Example object at 0x7fa825fb4cd0>]}

数据的内容['order']

代码:

pprint(list(example.__dict__ for example in data['order']))

输出:

[{'anchor': u'first', 'data': 'I am the first one.'},
 {'anchor': u'second', 'data': 'I am the second one.'}]

示例具有addnational属性锚。

再次转储数据

代码:

print enhancedyaml.dump(data, default_flow_style=False)

输出:

examples:
- &first !Example
  data: I am the first one.
- &second !Example
  data: I am the second one.
order:
- \*first
- \*second

它几乎和原来的山药一样。

转储运行时生成的对象

代码:

e1 = Example()
e2 = Example()
e1.data = "I don't have `anchor`."
e2.data = "I don't have `anchor`, too."
es = [e1, e2, e2, e1]
print enhancedyaml.dump(es, default_flow_style=False)

输出:

- &example002 !Example
  data: I don't have `anchor`.
- &example001 !Example
  data: I don't have `anchor`, too.
- \*example001
- \*example002

您可以在enhancedyaml/examples目录中找到更多示例。

玩得开心!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java返回调用函数中的更新值   java如何停止小程序中计数变量的错误递增?   java Firebase数据库如何从1引用和等于2引用中获取一些值以获取其键和值   用于从SD卡获取图像的java FileNotFoundException   带有扫描仪的Java应用程序中出现字符串错误。Next()与NextLine()以及为什么我会出错?   java刷新JTable,以便显示插入的数据   java IE不支持通过JSF Trinidad的SVG查看器   Java USB游戏控制器库   java JSON解析错误:无法构造实体类的实例   web服务java。lang.NoClassDefFoundError:com/sun/tools/javac/Main SOAP UI   C++调用GetFieldID在JNI中恢复自定义java类成员ID时,陷入了奇怪的崩溃   java JavaFX从gui接收事件后返回主线程   java将模拟注入Spring测试Mockito+Spring+TestNG   java如何调用ArrayList中的每个数组并按年龄对ArrayList进行排序?