我有這種格式的 yaml 檔案。我有大塊資料以“-緩沖區:0”開頭。需要將這些塊存盤在字典中并處理資料。
- {MinimumRequiredVersion: 1.2.1}
- baran
- afc90a
- [Device 0050, Device 0051, Device 0052, Device 0054, Device 0062, Device 7400, Device 740c]
- AllowNoFreeDims: false
AssignedDerivedParameters: true
DataType: 4
IndexAssignmentsLD: [4, 5, 6, 7]
IndexUnroll: 3
- - Buffer: 0
AggressivePerfMode: 1
AssertFree0ElementMultiple: 1
AssertFree1ElementMultiple: 1
...
- Buffer: 0
AggressivePerfMode: 1
AssertFree0ElementMultiple: 1
...
- Buffer: 0
AggressivePerfMode: 1
AssertFree0ElementMultiple: 1
AssertFree1ElementMultiple: 1
...
- Buffer: 0
AggressivePerfMode: 1
AssertFree0ElementMultiple: 1
AssertFree1ElementMultiple: 1
...
- Buffer: 0
AggressivePerfMode: 1
AssertAlphaValue: false
AssertBetaValue: false
AssertCEqualsD: false
AssertMinApproxSize: 3
...
- 1LDSBuffer: 0
AggressivePerfMode: 1
AssertAlphaValue: false
AssertBetaValue: false
...
- [2, 3, 0, 1]
- - - [512, 1, 1, 500000]
- [8, 0.45]
- - [512, 2, 1, 500000]
- [8, 0.883]
- null
我使用下面的代碼來決議 yaml 檔案并列印,它可以作業。
with open(filename, "r") as f:
data = yaml.load(f, yaml.SafeLoader)
sorted_data = yaml.dump(data)
print(sorted_data)
我是 python 和這種 yaml 檔案格式的新手。任何指標我如何在“-緩沖區:0”到另一個“-緩沖區:0”之間提取字典中的資料塊(可能是串列也可以)。我試過這個來獲取塊但沒有成功。列印({資料['緩沖區]})
uj5u.com熱心網友回復:
data是一個串列(其元素由-YAML 指定)。包含您似乎感興趣的詞典的串列因此在data[5]- 您可以看到它是另一個級別的-專案的另一個串列。具體來說,data[5][0]是一個字典(由<key>:YAML 中的專案指定):
{'Buffer': 0, 'AggressivePerfMode': 1, 'AssertFree0ElementMultiple': 1, 'AssertFree1ElementMultiple': 1}
并且data[5][0]["Buffer"]是0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/480287.html
標籤:python-3.x 列表 字典 yaml pyyaml
