【发布时间】:2019-08-21 17:58:25
【问题描述】:
过去一个小时我一直在谷歌上搜索,但还没有找到解决方案。我正在尝试生成一个应具有以下格式的.yaml 文件:
"objects":
-"dog"
-"cat"
-"rabbit"
文件最初是空的(只有objects 应该在那里)并且应该附加名称。这是它最初的样子:
"objects":
试图追加到一个空列表给我以下错误:
Traceback (most recent call last):
File "C:\others\py_projects\learn\controller\addNewItemController.py", line 67, in onSave
cur_yaml["objects"].append(self._model.myObjectName)
AttributeError: 'NoneType' object has no attribute 'append'
我的代码如下:
objectNameDict = [self._model.myObjectName]
with open('files/object.yaml', 'r') as yamlfile:
cur_yaml = yaml.safe_load(yamlfile)
cur_yaml = {} if cur_yaml is None else cur_yaml
cur_yaml["objects"].append(objectNameDict)
print(cur_yaml)
with open('files/object.yaml', 'w') as yamlfile:
yaml.safe_dump(cur_yaml, yamlfile, explicit_start=True, allow_unicode=True, encoding='utf-8')
解决了列表问题(感谢 lasrks),但第一次尝试总是失败,因为列表为空。
我该怎么办?
【问题讨论】: