Python 如何从OrderedDict中提取特定值?

Python 如何从OrderedDict中提取特定值?,python,python-3.x,ordereddictionary,Python,Python 3.x,Ordereddictionary,我喜欢提取特定的密钥并将它们存储到列表中。到目前为止,我能够从MariaDB读取数据并将行存储为字典(我更喜欢将输出作为JSON): 导入pymysql 将simplejson导入为json 导入集合 导入凭据\u全局 conn=pymysql.connect( 主机=凭据\u global.mariadb\u开发\u ip\u地址, user=credentials\u global.mariadb\u dev\u用户名, password=credentials\u global.maria

我喜欢提取特定的密钥并将它们存储到列表中。到目前为止,我能够从MariaDB读取数据并将行存储为字典(我更喜欢将输出作为JSON):

导入pymysql
将simplejson导入为json
导入集合
导入凭据\u全局
conn=pymysql.connect(
主机=凭据\u global.mariadb\u开发\u ip\u地址,
user=credentials\u global.mariadb\u dev\u用户名,
password=credentials\u global.mariadb\u dev\u password,
端口=凭据\u global.mariadb\u dev\u端口,
数据库=凭证\u global.mariadb\u开发\u数据库\u票务,
)
游标=连接游标()
cursor.execute(“从master.orders中选择a、b、c、d、e、f,其中c=215”)
rows=cursor.fetchall()
对象列表=[]
对于行中的行:
d=collections.OrderedDict()
d[“a”]=第[0]行
d[“b”]=第[1]行
d[“c”]=第[2]行
d[“d”]=第[3]行
d[“e”]=第[4]行
d[“f”]=第[5]行
对象\u列表。追加(d)
j=json.dumps(对象列表)
印刷品(j)
这将产生以下输出:

[
    {
        "a": 4153,
        "b": "NO_EFFECT",
        "c": "none",
        "d": "Medium",
        "e": 1,
        "f": "No Remarks",
    },
    {
        "a": 4154,
        "b": "SIGNIFICANT",
        "c": "none",
        "d": "Low",
        "e": 1,
        "f": "Test Message",
    },
]

我想提取所有出现的
f
。我试过:

for key, value in d.items():
    print(value)
这将产生:

4153
NO_EFFECT
none
Medium
1
No Remarks

4154
SIGNIFICANT
none
Low
1
Test Message
我更喜欢的是只提取
f
,这样输出就像
[无备注,测试消息]
(我假设序列保持不变)。有没有人能帮助我实现目标,或者去哪里寻找

多谢各位

for obj in objects_list:
    print(obj['f'])
OrderedDict保留键的顺序(a b c…)。此输出中的顺序来自对象列表中的顺序

要将其放在输出列表中,请执行以下操作:

only_f_fields = [ obj['f'] for obj in objects_list ]

我想你想要的答案是

for key, value in d.items():    
    print(value[0]['f'])

列表中的第一个元素0,该列表中的元素f是字典中的元素。

假设接收到的输出位于列表上方:
ex=[{“a”:4153,“b”:“无效果”,“c”:“无”,“d”:“中等”,“e”:1,“f”:“无备注”},
{“a”:4154,“b”:“有效”,“c”:“无”,“d”:“低”,“e”:1,“f”:“测试消息”}]

我们可以执行两种方法,一种迭代通常不采用键顺序,另一种迭代采用键顺序

通常进行迭代和检查(仅用于解释) 输出:
[“无备注”,“测试消息”]

有序字典保留键的顺序: 输出:
[“无备注”,“测试消息”]

感谢您的及时回复。我无法在
中调用
items()
以获取val中的k,v。items():
并且我得到错误
AttributeError:“tuple”对象没有属性“items”
f_list = list()
for val in ex:
    for k, v in val.items():
        if k == "f":
           f_list.append(v)

print(f_list)
f_list = list()
for val in ex:
    f_list.append(val["f"])
print(f_list)