如何从命令中提取特定值?

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


import pymysql

import simplejson as json

import collections

import credentials_global


conn = pymysql.connect(

    host=credentials_global.mariadb_dev_ip_address,

    user=credentials_global.mariadb_dev_username,

    password=credentials_global.mariadb_dev_password,

    port=credentials_global.mariadb_dev_port,

    database=credentials_global.mariadb_dev_db_ticketing,

)


cursor = conn.cursor()

cursor.execute("select a, b, c, d, e, f from master.orders where c = 215")

rows = cursor.fetchall()


objects_list = []

for row in rows:

    d = collections.OrderedDict()

    d["a"] = row[0]

    d["b"] = row[1]

    d["c"] = row[2]

    d["d"] = row[3]

    d["e"] = row[4]

    d["f"] = row[5]

    objects_list.append(d)


j = json.dumps(objects_list)

print(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[No Remarks, Test Message]


慕运维8079593
浏览 155回答 3
3回答

元芳怎么了

for obj in objects_list:    print(obj['f'])命令定义保持密钥的顺序(a b c ...此输出中的顺序来自objects_list中的顺序。要在输出列表中获取它: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": "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_list = list()for val in ex:    for k, v in val.items():        if k == "f":           f_list.append(v)print(f_list)输出:['No Remarks', 'Test Message']有序字典保持键的顺序:f_list = list()for val in ex:    f_list.append(val["f"])print(f_list)输出:['No Remarks', 'Test Message']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python