如何从字典中提取特定的列键和值?

我目前有一个包含一个键的字典,以及大约 30 列字符串和整数格式的值。


例如:


Message: '0409-01:51:02.577'

Arguments: (['29', '30', '37', '5463', '84338', 'ABCD', 'x-abc1', 'xxx', '1A234BCD5EFG67890H1234IJ', 'ABCDEF', '02DA', '123456789', '1234567890', '1234567890', '1A234BCD5', '911', '1A234BCD5EF', '0', '12', '7', '1', '_', 'XY', 'ABC', '1A234BCDEF', 'ABCDEF', '1A234BCD', '1A234BCD', '1A234BCDDFW', 'L', '1'],)

我正在尝试`k`, `v[5]`, `v[12]`, `v[28]`, `v[25]`, `v[22`], `v[23]`, `v[9]`按该顺序提取到新的字典或列表中。


我试过在 list 和 dict 之间变化,我尝试了一行与多行。不幸的是,我无法更改传入的 dict,因为我正在从四个不同的来源提取数据来构建它。


abcdef = ('ABC', 'DEF')


incoming_files = {0409-01:51:02.577:['29', '30', '37', '5463', '84338', 'ABCD', 'x-abc1', 'xxx', '1A234BCD5EFG67890H1234IJ', 'ABCDEF', '02DA', '123456789', '1234567890', '1234567890', '1A234BCD5', '911', '1A234BCD5EF', '0', '12', '7', '1', '_', 'XY', 'ABC', '1A234BCDEF', 'ABCDEF', '1A234BCD', '1A234BCD', '1A234BCDDFW', 'L', '1']}


tc_wfiles = {}

    for k, v in incoming_files.items():

        if any(c in v for c in abcdef):

            try:

                self.tc_wfiles[k] = incoming_files[k]

                self.tc_wfiles[k].append(incoming_files[k][5])

                self.tc_wfiles[k].append(incoming_files[k][12])

                self.tc_wfiles[k].append(incoming_files[k][28])

                self.tc_wfiles[k].append(incoming_files[k][25])

                self.tc_wfiles[k].append(incoming_files[k][22])

                self.tc_wfiles[k].append(incoming_files[k][23])

                self.tc_wfiles[k].append(incoming_files[k][9])

            except IndexError:

                pass

应该发生的是关键,这些值被放置在一个新的字典或列表中。然而,我得到的是关键字段中的整行,然后是值项目。


杨__羊羊
浏览 214回答 1
1回答

尚方宝剑之说

我不确定这是否能回答你的问题,因为你没有指出正确的结果应该是什么......但如果没有别的,也许这会给你一些见解。abcdef = ('ABC', 'DEF')incoming_files = {'0409-01:51:02.577': ['29', '30', '37', '5463', '84338',                                        'ABCD', 'x-abc1', 'xxx',                                        '1A234BCD5EFG67890H1234IJ', 'ABCDEF',                                        '02DA', '123456789', '1234567890',                                        '1234567890', '1A234BCD5', '911',                                        '1A234BCD5EF', '0', '12', '7', '1', '_',                                        'XY', 'ABC', '1A234BCDEF', 'ABCDEF',                                        '1A234BCD', '1A234BCD', '1A234BCDDFW',                                        'L', '1']}tc_wfiles = {}for k, v in incoming_files.items():    if any(c in v for c in abcdef):        try:            tc_wfiles[k] = [k]            tc_wfiles[k].append(v[5])            tc_wfiles[k].append(v[12])            tc_wfiles[k].append(v[28])            tc_wfiles[k].append(v[25])            tc_wfiles[k].append(v[22])            tc_wfiles[k].append(v[23])            tc_wfiles[k].append(v[9])        except IndexError as exc:            print('exception:', exc)from pprint import pprintpprint(tc_wfiles)输出:{'0409-01:51:02.577': ['0409-01:51:02.577',                       'ABCD',                       '1234567890',                       '1A234BCDDFW',                       'ABCDEF',                       'XY',                       'ABC',                       'ABCDEF']}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python