Modify ↓
Ticket #117 (closed defect: invalid)
Key Ordering
| Reported by: | pschmitt@… | Owned by: | xi |
|---|---|---|---|
| Priority: | normal | Component: | pyyaml |
| Severity: | normal | Keywords: | Key Ordering |
| Cc: | pschmitt@… |
Description
I dont understand how PyYAML reads YML files with "Block Mapping", (I call these "Nested variables" in my example):
>>> document = """ Variable 1: x: a y: b z: c Variable 2: 1: a 2: b 3: c """ >>> yml=yaml.load(document) >>> yml.keys() ['Variable 2', 'Variable 1'] >>> yml["Variable 1"].keys() ['y', 'x', 'z']
So it looks like PyYAML loads the document in reverse order, "Variable 2" is read before "Variable 1". That's fine. But why is ymlVariable 1?.keys() in a random order? It seems like it should either be chronological (x,y,z) or reverse chronological (z,y,x).
I'm having a hard time parsing tickets #29 and #116, which might be related... Can you offer up some insight?
PS: Sorry if this is the wrong place for a question... I couldn't find a mailing list.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

The mailing list is 'yaml-core' ( http://sourceforge.net/mailarchive/forum.php?forum_name=yaml-core)
Dictionaries have no concept of order among elements. It is incorrect to say that the elements are “in a random order”; they are simply unordered.
If the order is important use 'omap' type ( http://yaml.org/type/omap.html)