【发布时间】:2018-04-19 15:46:35
【问题描述】:
我正在尝试使用 Python 和 YAML 创建一个日志记录软件。我需要测试多块电路板,并且每块电路板可能需要进行 1 次以上的试验。 所以我想将 YAML 文件中的数据按板号升序排列,以自动化分析过程。
#!/usr/bin/python3
import yaml
import io
board_no = (input('Enter the board number: '))
trial_no = (input('Enter the trial no: '))
reading1 = int(input('Reading1: '))
status = input('Pass/Fail: ')
yaml.allow_duplicate_keys = True
basic_info = { 'Board ' + board_no:{
'Trial ' + trial_no:{
'Reading1 ' : reading1,
'Status ': status
}
}
}
fp = "../yaml_101/test_list.yaml"
outfile = open (fp,'a')
yaml.dump(basic_info, outfile, indent = 4, default_flow_style = False)
outfile.close()
我编写了这个相当简单的代码只是为了创建日志条目。 我一直在寻找在 2 个块之间插入数据的方法,但没有找到。 我当前的输出是(手动输入后):
Board 1:
Trial 1:
'Reading1 ': 450
'Status ': Pass
Board 2:
Trial 1:
'Reading1 ': 758
'Status ': Fail
Board 3:
Trial 1:
'Reading1 ': 450
'Status ': Pass
Board 2:
Trial 2:
'Reading1 ': 450
'Status ': Pass
我想要的输出是:
Board 1:
Trial 1:
'Reading1 ': 450
'Status ': Pass
Board 2:
Trial 1:
'Reading1 ': 758
'Status ': Fail
Board 2:
Trial 2:
'Reading1 ': 450
'Status ': Pass
Board 3:
Trial 1:
'Reading1 ': 450
'Status ': Pass
有人可以指导我吗? 我对 YAML 和 Python 完全陌生。
【问题讨论】:
-
yaml 使用 dict 容器来移动数据,因此它们不会按您想要的顺序保存。