나는 간단한 YAML 부하를하고있어 작은 문제로 실행 :로드 YAML 목록 사전
코드 :
with open(target, 'r') as stream:
try:
data = (yaml.load(stream))
except Exception as exc:
print (exc)
print(data)
우선 YAML 파일 :
test:
- foo: 1
- bar: 2
test2:
- foo: 1
- bar: 2
둘째 YAML 파일 :
foo: 1
bar: 2
시험 군의 값은, 그래서 이러한 값을 반환 내가 print(data['test'])
를 처음 사용할 YAML에서 데이터를 액세스하기 위해 노력하고있어 때 두 번째에
[{'foo': '1'}, {'bar': '2'}]
을, 나는 print(data)
라인을 사용하고 난 얻을 :
{'foo': '1'}, {'bar': '2'}
나는 아무것도 브래킷을 교체하거나 새로운 객체를 생성하는 반복적 인 루프를 사용하여, 나는이 문제를 해결할 수있는 몇 가지 방법을 알고 있지만, 정말 복잡한 것 같다. 농구를 뛰어 넘지 않고 읽는 것이 더 어려운 코드를 만들지 않고 찾고있는 결과를 얻을 수있는 더 좋은 방법이 있습니까?
* 문제를 해결할 수있는 몇 가지 방법을 알고 있습니다. * 문제는 무엇입니까? – bhansa
데이터는 목록 형식으로되어 있으며 그 형식으로 가져 오기 위해 루프를 사용하지 않고 사전으로 원합니다. – Merakel
@Merakel YAML에서 일련의 매핑을 사용하면 파이썬에서 dicts 목록을 얻을 수 있습니다. 직접 데이터를 처리해야합니다. 또는 첫 번째 파일의리스트에'!! omap' 태그를 추가하면,'ordereddict'가 다시 나타납니다. – tinita