在YAML spec的第8页,作者提供了第4页"映射序列的示例"像这样:
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
为了我自己的理解,我(粗略地)如何在Python中表示?
映射>序列>制图,制图,制图......?
{"Product" : ({ "sku" : "BL394D" }, {"quantity" : 4 }), ... }
或映射>映射序列1,2,3,......?
{"Product" : ({ "sku" : "BL394D" }), ({ "quantity" : 4 }), ... )}
还是其他什么?
答案 0 :(得分:1)
在JSON中看起来如此:
{
"product": [
{
"sku": "BL394D",
"quantity": 4,
"description": "Basketball",
"price": 450
},
{
"sku": "BL4438H",
"quantity": 1,
"description": "Super Hoop",
"price": 2392
}
]
}
因此在Python中,它将是一个具有map的映射的对象,它是具有sku,quantity等属性的其他对象的数组。
答案 1 :(得分:1)
在YAML文档的根目录中有一个映射。这有一个键Dim rngCopy As Range, rngPaste As Range
With ActiveSheet
Set rngCopy = .Range(.Range("A2"), .Cells(2, Columns.Count).End(xlToLeft))
Set rngPaste = .Range(.Range("A2"), _
.Cells(Rows.Count, 1).End(xlUp)).Resize( , rngCopy.Columns.Count)
End With
rngCopy.Copy
rngPaste.PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
。它的值是一个序列,有两个项目(用短划线<DataGridTextColumn
Header ="Value"
Binding="{Binding Value, Converter={StaticResource decimalConverter}}"
/>
表示)。
序列元素也是映射,每个映射的第一个键/值对与序列元素(其键为product
)在同一行开始。
在Python中,默认情况下,映射作为-
加载,序列作为sku
加载,因此您可以使用以下命令在Python中定义数据:
dict
您当然可以加载数据结构,然后打印它以查看它是如何加载的。
答案 2 :(得分:0)
如果您正在寻找如何从yaml表示中获取Python对象,则可以使用yaml解析器。例如pyyaml。
使用pip安装:pip install pyyaml
然后,例如:
>>> doc = """
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
"""
>>> yaml.load(doc)
{
'product': [{
'description': 'Basketball',
'price': 450.0,
'quantity': 4,
'sku': 'BL394D'
}, {
'description': 'Super Hoop',
'price': 2392.0,
'quantity': 1,
'sku': 'BL4438H'
}]
}