相关疑难解决方法(0)

YAML和JSON有什么区别?什么时候比较喜欢一个

考虑到以下因素,我们何时应该优先使用YAML而不是JSON,反之亦然?

  • 性能(编码/解码时间)
  • 内存消耗
  • 表达清晰度
  • 库可用性,易用性(我更喜欢C)

我计划在嵌入式系统中使用这两个中的一个来存储配置文件.

有关:

我应该使用YAML或JSON来存储我的Perl数据吗?

json yaml

673
推荐指数
12
解决办法
30万
查看次数

我可以加速YAML吗?

我做了一个小测试用例来比较YAML和JSON的速度:

import json
import yaml
from datetime import datetime
from random import randint

NB_ROW=1024

print 'Does yaml is using libyaml ? ',yaml.__with_libyaml__ and 'yes' or 'no'

dummy_data = [ { 'dummy_key_A_%s' % i: i, 'dummy_key_B_%s' % i: i } for i in xrange(NB_ROW) ]


with open('perf_json_yaml.yaml','w') as fh:
    t1 = datetime.now()
    yaml.safe_dump(dummy_data, fh, encoding='utf-8', default_flow_style=False)
    t2 = datetime.now()
    dty = (t2 - t1).total_seconds()
    print 'Dumping %s row into a yaml file : %s' % (NB_ROW,dty)

with open('perf_json_yaml.json','w') as fh:
    t1 …
Run Code Online (Sandbox Code Playgroud)

python json yaml

17
推荐指数
3
解决办法
7823
查看次数

为什么PyYAML在解析YAML文件时花了这么多时间?

我使用以下格式解析大约6500行的YAML文件:

foo1:
  bar1:
    blah: { name: "john", age: 123 }
  metadata: { whatever1: "whatever", whatever2: "whatever" }
  stuff:
    thing1: 
      bluh1: { name: "Doe1", age: 123 }
      bluh2: { name: "Doe2", age: 123 }
    thing2:
    ...
    thingN:
foo2:
...
fooN:
Run Code Online (Sandbox Code Playgroud)

我只想用PyYAML库解析它(我认为在Python中没有其他替代方法:我如何在Python中解析YAML文件).

只是为了测试,我编写代码来解析我的文件:

import yaml

config_file = "/path/to/file.yaml"

stream = open(config_file, "r")
sensors = yaml.load(stream)
Run Code Online (Sandbox Code Playgroud)

使用time命令执行脚本以及我这次得到的脚本:

real    0m3.906s
user    0m3.672s
sys     0m0.100s
Run Code Online (Sandbox Code Playgroud)

那些价值看起来并不太好.我只想用JSON测试相同的内容,只需将相同的YAML文件转换为JSON:

import json

config_file = "/path/to/file.json"

stream = open(config_file, "r")
sensors = …
Run Code Online (Sandbox Code Playgroud)

python json yaml pyyaml

10
推荐指数
1
解决办法
2407
查看次数

标签 统计

json ×3

yaml ×3

python ×2

pyyaml ×1