【发布时间】:2019-11-19 00:53:50
【问题描述】:
使用字典列表,在 json 数据集 (mydata.json) 中如下所示:
[
{"A": "123", "B": "456", "C": "789", "D": "1011"},
{"A": "1213", "B": "1415", "C": "1617", "D": "1819"},
...
]
我正在尝试遍历每个字典,并按照存储顺序提取每个键值对。
我希望按照每个字典的特定顺序保留 A、B、C、D 序列,以便能够将它们传递到另一段代码中,以便进一步处理它。
为简单起见,我通过以下嵌套 for 循环的每次迭代打印每个步骤来测试它。
不幸的是,它没有按照我需要的方式处理字典。
我需要按每个循环的顺序访问每个键值对,例如第一个包含键 A 的字典应该由同一个字典的第一个 B-C-D 接续。
然后应该处理第二个字典,从A开始,然后是B-C-D等
我尝试了什么:
with open("mydata.json", "r") as read_file:
md = json.load(read_file)
for d in md:
for k,v in d.items():
if (k == "A"):
print(k + ": " + v)
continue
if (k == "B"):
print(k + ": " + v)
continue
if (k == "C"):
print(k + ": " + v)
continue
if (k == "D"):
print(k + ": " + v)
continue
else:
continue
期望的输出(严格的顺序):
A: 123
B: 456
C: 789
D: 1011
A: 1213
B: 1415
C: 1617
D: 1819
实际输出(打乱顺序):
B: 456
D: 1011
A: 123
C: 789
A: 1213
C: 1617
... etc.
非常感谢任何建议。
编辑:
我确实将我的问题标记为重复,为此道歉! 如果我需要完全删除它,以减少 SO 中的混乱,请留下评论建议。感谢您的帮助!
【问题讨论】:
-
这是什么python版本?注意:python 字典在 python 3.6 之前没有排序(见这里:stackoverflow.com/questions/39980323/…)。
-
字典不保留其键的顺序。
-
欢迎来到 Stack Overflow!以下是一些指导,用于决定是否应删除该问题或将其留给其他人作为路标:meta.stackoverflow.com/a/300119/3975963
标签: python list loops dictionary