【问题标题】:Writing list of dictionaries to a csv file but getting ValueError: dict contains fields not in fieldnames将字典列表写入 csv 文件但得到 ValueError: dict contains fields not in fieldnames
【发布时间】:2015-04-21 13:50:00
【问题描述】:

我找到了答案。我需要的是 writerow 而不是 writerow。

所以正确的代码是这样的:

    #!/usr/bin/env python
    import csv


    def process_cdr():
        f = open(files)
        for lines in f:
            if 'ERS.VA' == lines[39:45]:
                d = {   'mnc'    : lines[13:15],
                        'tac-lb' : lines[52:54],
                'tac-hb' : lines[61:63],
                'TAC' : lines[61:63]+lines[52:54],
                'TAC_DEC' : str(int(lines[61:63]+lines[52:54],16))       
            }

                if '02' in d['mnc']:
                    mnc02.append(d)
                elif '03' in d['mnc']:
                    mnc03.append(d)
                elif '04' in d['mnc']:
                    mnc04.append(d)
                else:
                    pass
            else:
                pass


    mnc02 =[]
    mnc03 =[]
    mnc04 =[]

    files = 'teste.txt'

    process_cdr()

    mnc_02_path = 'tac_mnc02.csv'
    keys_mnc02 = mnc02[0].keys()
    with open(mnc_02_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc02)
        dict_writer.writeheader()
        dict_writer.writerows(mnc02)

    mnc_03_path = 'tac_mnc03.txt'
    keys_mnc03 = mnc03[0].keys()
    with open(mnc_03_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc03)
        dict_writer.writeheader()
        dict_writer.writerows(mnc03)

    mnc_04_path = 'tac_mnc04.txt'
    keys_mnc04 = mnc04[0].keys()
    with open(mnc_04_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc04)
        dict_writer.writeheader()
        dict_writer.writerows(mnc04)

谢谢大家,特别是lapinkoira。 我在这里搜索了很多,但我仍然无法理解我做错了什么。

代码如下:

    #!/usr/bin/env python
    import csv


    def process_cdr():
        f = open(files)
        for lines in f:
            if 'ERS.VA' == lines[39:45]:
                d = {   'mnc'    : lines[13:15],
                        'tac-lb' : lines[52:54],
                'tac-hb' : lines[61:63],
                'TAC' : lines[61:63]+lines[52:54],
                'TAC_DEC' : str(int(lines[61:63]+lines[52:54],16))       
            }

                if '02' in d['mnc']:
                    mnc02.append(d)
                elif '03' in d['mnc']:
                    mnc03.append(d)
                elif '04' in d['mnc']:
                    mnc04.append(d)
                else:
                    pass
            else:
                pass


    mnc02 =[]
    mnc03 =[]
    mnc04 =[]

    files = 'teste.txt'

    process_cdr()

    mnc_02_path = 'tac_mnc02.csv'
    keys_mnc02 = mnc02[0].keys()
    with open(mnc_02_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc02)
        dict_writer.writeheader()
        dict_writer.writerow(mnc02)

    mnc_03_path = 'tac_mnc03.txt'
    keys_mnc03 = mnc03[0].keys()
    with open(mnc_03_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc03)
        dict_writer.writeheader()
        dict_writer.writerow(mnc03)

    mnc_04_path = 'tac_mnc04.txt'
    keys_mnc04 = mnc04[0].keys()
    with open(mnc_04_path,'wb') as resultado: 
        dict_writer = csv.DictWriter(resultado, keys_mnc04)
        dict_writer.writeheader()
        dict_writer.writerow(mnc04)

当我打印字段名时,例如keys_mnc02,我得到:['tac-lb', 'TAC_DEC', 'mnc', 'tac-hb', 'TAC']

错误开始于:

ValueError: dict contains fields not in fieldnames: {'tac-lb': '7e', 'TAC_DEC': '33150', 'mnc': '02', 'tac-hb': '81', ' TAC':'817e'},{'tac-lb':'7e','TAC_DEC':'33150','mnc':'02','tac-hb':'81','TAC':' 817e'},{'tac-lb':'EE','TAC_DEC':'32750','mnc':'02','tac-hb':'7F','TAC':'7FEE'}, {'tac-lb':'FC','TAC_DEC':'32252','mnc':'02','tac-hb':'7D','TAC':'7DFC'},{'tac- lb':'C3','TAC_DEC':'32451','mnc':'02','tac-hb':'7E','TAC':'7EC3'},{'tac-lb':' B4','TAC_DEC':'32180','mnc':'02','tac-hb':'7D','TAC':'7DB4'},{'tac-lb':'B9',' TAC_DEC':'32185','mnc':'02','tac-hb':'7D','TAC':'7DB9'},{'tac-lb':'4F','TAC_DEC':' 33103','mnc':'02','tac-hb':'81','TAC':'814F'},{'tac-lb':'4D','TAC_DEC':'33101',' mnc':'02','tac-hb':'81','TAC':'814D'},{'tac-lb':'4E','TAC_DEC':'33102','mnc':' 02','tac-hb':'81','TAC':'814E'},{'tac-lb':'50','TAC_DEC':'33104','mnc':'02',' tac-hb':'81','TAC':'8150'},{'tac-lb':'51','TAC_DEC':'33105','mnc': '02', 'tac-hb': '81', 'TAC': '8151'}, {'tac-lb': '52', 'TAC_DEC': '33106', 'mnc': '02', 'tac-hb': '81', 'TAC': '8152'}, {'tac-lb': '7E', 'TAC_DEC': '39550', 'mnc': '02', 'tac-hb ':'9A','TAC':'9A7E'},{'tac-lb':'65','TAC_DEC':'38501','mnc':'02','tac-hb':'96 ', 'TAC': '9665'}, {'tac-lb': '66', 'TAC_DEC': '38502', 'mnc': '02', 'tac-hb': '96', 'TAC ':'9666'},{'tac-lb':'67','TAC_DEC':'38503','mnc':'02','tac-hb':'96','TAC':'9667 '},{'tac-lb':'68','TAC_DEC':'38504','mnc':'02','tac-hb':'96','TAC':'9668'},{ 'tac-lb':'69','TAC_DEC':'38505','mnc':'02','tac-hb':'96','TAC':'9669'},{'tac-lb ':'6A','TAC_DEC':'38506','mnc':'02','tac-hb':'96','TAC':'966A'},{'tac-lb':'6B ','TAC_DEC':'38507','mnc':'02','tac-hb':'96','TAC':'966B'},{'tac-lb':'6C','TAC_DEC ':'38508','mnc':'02','tac-hb':'96','TAC':'966C'},{'tac-lb':'6D','TAC_DEC':'38509 ', 'mnc': '02', 'tac-hb': '96', 'TAC': '966D'}, {'tac-lb': 'B1', 'TAC_DEC': '33201', 'mnc ':'02','tac-hb': '81', 'TAC': '81B1'}, {'tac-lb': 'B2', 'TAC_DEC': '33202', 'mnc': '02', 'tac-hb': '81', 'TAC': '81B2'},

等等等等..

谁能帮帮我?

谢谢!

【问题讨论】:

  • ValueError 发生在哪一行?
  • 只是旁注:您不需要任何else: pass 声明。拥有一个什么都不做的else 与一开始就没有else 是一样的。
  • @lapinkoira 第 48 行 .. 我刚刚更新了 xD

标签: python csv dictionary


【解决方案1】:

@lapinkoira

mnc03的值为:

[{'tac-lb': 'A9', 'TAC_DEC': '31401', 'mnc': '03', 'tac-hb': '7A', 'TAC': '7AA9'}, {'tac-lb':'A9','TAC_DEC':'31401','mnc':'03','tac-hb':'7A','TAC':'7AA9'},{'tac- lb':'7F','TAC_DEC':'31103','mnc':'03','tac-hb':'79','TAC':'797F'},{'tac-lb':' 7F','TAC_DEC':'31103','mnc':'03','tac-hb':'79','TAC':'797F'},{'tac-lb':'87',' TAC_DEC':'31111','mnc':'03','tac-hb':'79','TAC':'7987'},{'tac-lb':'87','TAC_DEC':' 31111','mnc':'03','tac-hb':'79','TAC':'7987'},{'tac-lb':'8A','TAC_DEC':'31114',' mnc':'03','tac-hb':'79','TAC':'798A'},{'tac-lb':'8A','TAC_DEC':'31114','mnc':' 03','tac-hb':'79','TAC':'798A'},{'tac-lb':'8B','TAC_DEC':'31115','mnc':'03',' tac-hb':'79','TAC':'798B'},{'tac-lb':'8B','TAC_DEC':'31115','mnc':'03','tac-hb' :'79','TAC':'798B'},{'tac-lb':'AB','TAC_DEC':'31147','mnc':'03','tac-hb':'79' , 'TAC': '79AB'}, {'tac-lb': 'AB', 'TAC_DEC': '31147', 'mnc': '03', 'tac-hb': '79', 'TAC' :'79AB'},{'tac-lb':' AC', 'TAC_DEC': '31148', 'mnc': '03', 'tac-hb': '79', 'TAC': '79AC'}, {'tac-lb': 'AC', ' TAC_DEC':'31148','mnc':'03','tac-hb':'79','TAC':'79AC'},{'tac-lb':'AD','TAC_DEC':' 31149','mnc':'03','tac-hb':'79','TAC':'79AD'},{'tac-lb':'AD','TAC_DEC':'31149',' mnc':'03','tac-hb':'79','TAC':'79AD'},{'tac-lb':'B8','TAC_DEC':'31160','mnc':' 03','tac-hb':'79','TAC':'79B8'},{'tac-lb':'B8','TAC_DEC':'31160','mnc':'03',' tac-hb':'79','TAC':'79B8'},{'tac-lb':'BD','TAC_DEC':'31165','mnc':'03','tac-hb' :'79','TAC':'79BD'},{'tac-lb':'BD','TAC_DEC':'31165','mnc':'03','tac-hb':'79' , 'TAC': '79BD'}, {'tac-lb': 'BE', 'TAC_DEC': '31166', 'mnc': '03', 'tac-hb': '79', 'TAC' :'79BE'},{'tac-lb':'BE','TAC_DEC':'31166','mnc':'03','tac-hb':'79','TAC':'79BE' },{'tac-lb':'BF','TAC_DEC':'31167','mnc':'03','tac-hb':'79','TAC':'79BF'},{' tac-lb':'BF','TAC_DEC':'31167','mnc':'03','tac-hb':'79','TAC':'79BF'},{'tac-lb' :“C0”,“TAC_DEC”: '31168', 'mnc': '03', 'tac-hb': '79', 'TAC': '79C0'}, {'tac-lb': 'C0', 'TAC_DEC': '31168', 'mnc': '03', 'tac-hb': '79', 'TAC': '79C0'}, {'tac-lb': 'C1', 'TAC_DEC': '31169', 'mnc': '03', 'tac-hb': '79', 'TAC': '79C1'}, {'tac-lb': 'C1', 'TAC_DEC': '31169', 'mnc': '03', 'tac-hb':'79','TAC':'79C1'},{'tac-lb':'C3','TAC_DEC':'31171','mnc':'03','tac-hb ':'79','TAC':'79C3'},{'tac-lb':'C3','TAC_DEC':'31171','mnc':'03','tac-hb':'79 ', 'TAC': '79C3'}, {'tac-lb': 'C4', 'TAC_DEC': '31172', 'mnc': '03', 'tac-hb': '79', 'TAC ':'79C4'},{'tac-lb':'C4','TAC_DEC':'31172','mnc':'03','tac-hb':'79','TAC':'79C4 '},{'tac-lb':'C5','TAC_DEC':'31173','mnc':'03','tac-hb':'79','TAC':'79C5'},{ 'tac-lb':'C5','TAC_DEC':'31173','mnc':'03','tac-hb':'79','TAC':'79C5'},{'tac-lb ':'C8','TAC_DEC':'31176','mnc':'03','tac-hb':'79','TAC':'79C8'},{'tac-lb':'C8 ','TAC_DEC':'31176','mnc':'03','tac-hb':'79','TAC':'79C8'},{'tac-lb':'86','TAC_DEC ':'31110','mnc': '03', 'tac-hb': '79', 'TAC': '7986'}, {'tac-lb': '86', 'TAC_DEC': '31110', 'mnc': '03', 'tac-hb': '79', 'TAC': '7986'}, {'tac-lb': '89', 'TAC_DEC': '31113', 'mnc': '03', 'tac-hb ':'79','TAC':'7989'},{'tac-lb':'89','TAC_DEC':'31113','mnc':'03','tac-hb':'79 ', 'TAC': '7989'}, {'tac-lb': '94', 'TAC_DEC': '31124', 'mnc': '03', 'tac-hb': '79', 'TAC ':'7994'},{'tac-lb':'94','TAC_DEC':'31124','mnc':'03','tac-hb':'79','TAC':'7994 '},{'tac-lb':'9C','TAC_DEC':'31132','mnc':'03','tac-hb':'79','TAC':'799C'},{ 'tac-lb':'9C','TAC_DEC':'31132','mnc':'03','tac-hb':'79','TAC':'799C'},{'tac-lb ':'9D','TAC_DEC':'31133','mnc':'03','tac-hb':'79','TAC':'799D'},{'tac-lb':'9D ','TAC_DEC':'31133','mnc':'03','tac-hb':'79','TAC':'799D'},{'tac-lb':'9E','TAC_DEC ':'31134','mnc':'03','tac-hb':'79','TAC':'799E'},{'tac-lb':'9E','TAC_DEC':'31134 ','mnc':'03','tac-hb':'79','TAC':'799E'},{'tac-lb':'9F','TAC_DEC':'31135','mnc ':'03','tac-hb': '79', 'TAC': '799F'}, {'tac-lb': '9F', 'TAC_DEC': '31135', 'mnc': '03', 'tac-hb': '79', 'TAC':'799F'},{'tac-lb':'A0','TAC_DEC':'31136','mnc':'03','tac-hb':'79','TAC': '79A0'},{'tac-lb':'A0','TAC_DEC':'31136','mnc':'03','tac-hb':'79','TAC':'79A0'} , {'tac-lb': 'A5', 'TAC_DEC': '31141', 'mnc': '03', 'tac-hb': '79', 'TAC': '79A5'}, {'tac -lb':'A5','TAC_DEC':'31141','mnc':'03','tac-hb':'79','TAC':'79A5'},{'tac-lb': 'B9', 'TAC_DEC': '31161', 'mnc': '03', 'tac-hb': '79', 'TAC': '79B9'}, {'tac-lb': 'B9', 'TAC_DEC':'31161','mnc':'03','tac-hb':'79','TAC':'79B9'},{'tac-lb':'BA','TAC_DEC': '31162', 'mnc': '03', 'tac-hb': '79', 'TAC': '79BA'}, {'tac-lb': 'BA', 'TAC_DEC': '31162', 'mnc': '03', 'tac-hb': '79', 'TAC': '79BA'}, {'tac-lb': 'BB', 'TAC_DEC': '31163', 'mnc': '03', 'tac-hb': '79', 'TAC': '79BB'}, {'tac-lb': 'BB', 'TAC_DEC': '31163', 'mnc': '03', 'tac-hb': '79', 'TAC': '79BB'}, {'tac-lb': 'BC', 'TAC_DEC': '31164', 'mnc': '03', 'tac-hb ':'79','TAC':'79 BC'},{'tac-lb':'BC','TAC_DEC':'31164','mnc':'03','tac-hb':'79','TAC':'79BC'}, {'tac-lb':'C7','TAC_DEC':'31175','mnc':'03','tac-hb':'79','TAC':'79C7'},{'tac- lb':'C7','TAC_DEC':'31175','mnc':'03','tac-hb':'79','TAC':'79C7'},{'tac-lb':' CB','TAC_DEC':'31179','mnc':'03','tac-hb':'79','TAC':'79CB'},{'tac-lb':'CB',' TAC_DEC':'31179','mnc':'03','tac-hb':'79','TAC':'79CB'},{'tac-lb':'0D','TAC_DEC':' 31501','mnc':'03','tac-hb':'7B','TAC':'7B0D'},{'tac-lb':'0D','TAC_DEC':'31501',' mnc':'03','tac-hb':'7B','TAC':'7B0D'},{'tac-lb':'8F','TAC_DEC':'31119','mnc':' 03','tac-hb':'79','TAC':'798F'},{'tac-lb':'8F','TAC_DEC':'31119','mnc':'03',' tac-hb':'79','TAC':'798F'},{'tac-lb':'92','TAC_DEC':'31122','mnc':'03','tac-hb' : '79', 'TAC': '7992'}, {'tac-lb': '92', 'TAC_DEC': '31122', 'mnc': '03', 'tac-hb': '79' , 'TAC': '7992'}, {'tac-lb': 'A1', 'TAC_DEC': '31137', 'mnc': '03', 'tac-hb': '79', 'TAC' :'79A1'},{'tac-lb': 'A1', 'TAC_DEC': '31137', 'mnc': '03', 'tac-hb': '79', 'TAC': '79A1'}, {'tac-lb': 'A2', 'TAC_DEC':'31138','mnc':'03','tac-hb':'79','TAC':'79A2'},{'tac-lb':'A2','TAC_DEC': '31138', 'mnc': '03', 'tac-hb': '79', 'TAC': '79A2'}, {'tac-lb': 'A3', 'TAC_DEC': '31139', 'mnc': '03', 'tac-hb': '79', 'TAC': '79A3'}, {'tac-lb': 'A3', 'TAC_DEC': '31139', 'mnc': '03', 'tac-hb': '79', 'TAC': '79A3'}, {'tac-lb': 'A4', 'TAC_DEC': '31140', 'mnc': '03', 'tac-hb':'79','TAC':'79A4'},{'tac-lb':'A4','TAC_DEC':'31140','mnc':'03','tac-hb ':'79','TAC':'79A4'},{'tac-lb':'A6','TAC_DEC':'31142','mnc':'03','tac-hb':'79 ', 'TAC': '79A6'}, {'tac-lb': 'A6', 'TAC_DEC': '31142', 'mnc': '03', 'tac-hb': '79', 'TAC ':'79A6'},{'tac-lb':'A7','TAC_DEC':'31143','mnc':'03','tac-hb':'79','TAC':'79A7 '},{'tac-lb':'A7','TAC_DEC':'31143','mnc':'03','tac-hb':'79','TAC':'79A7'},{ 'tac-lb':'A8','TAC_DEC':'31144','mnc':'03','tac-hb':'79','TAC':'79A8'},{'tac-lb ':'A8','TAC_DEC' :'31144','mnc':'03','tac-hb':'79','TAC':'79A8'},{'tac-lb':'B5','TAC_DEC':'31157' , 'mnc': '03', 'tac-hb': '79', 'TAC': '79B5'}, {'tac-lb': 'B5', 'TAC_DEC': '31157', 'mnc' :'03','tac-hb':'79','TAC':'79B5'},{'tac-lb':'B6','TAC_DEC':'31158','mnc':'03' , 'tac-hb': '79', 'TAC': '79B6'}, {'tac-lb': 'B6', 'TAC_DEC': '31158', 'mnc': '03', 'tac- hb':'79','TAC':'79B6'},{'tac-lb':'B7','TAC_DEC':'31159','mnc':'03','tac-hb':' 79','TAC':'79B7'},{'tac-lb':'B7','TAC_DEC':'31159','mnc':'03','tac-hb':'79',' TAC':'79B7'},{'tac-lb':'C2','TAC_DEC':'31170','mnc':'03','tac-hb':'79','TAC':' 79C2'},{'tac-lb':'C2','TAC_DEC':'31170','mnc':'03','tac-hb':'79','TAC':'79C2'}, {'tac-lb':'CC','TAC_DEC':'31180','mnc':'03','tac-hb':'79','TAC':'79CC'},{'tac- lb':'CC','TAC_DEC':'31180','mnc':'03','tac-hb':'79','TAC':'79CC'},{'tac-lb':' DE','TAC_DEC':'31198','mnc':'03','tac-hb':'79','TAC':'79DE'},{'tac-lb':'DE',' TAC_DEC': '31198', 'mnc' :'03','tac-hb':'79','TAC':'79DE'},{'tac-lb':'9D','TAC_DEC':'31901','mnc':'03' , 'tac-hb': '7C', 'TAC': '7C9D'}, {'tac-lb': '9D', 'TAC_DEC': '31901', 'mnc': '03', 'tac- hb':'7C','TAC':'7C9D'},{'tac-lb':'9E','TAC_DEC':'31902','mnc':'03','tac-hb':' 7C','TAC':'7C9E'},{'tac-lb':'9E','TAC_DEC':'31902','mnc':'03','tac-hb':'7C',' TAC':'7C9E'},{'tac-lb':'AF','TAC_DEC':'31151','mnc':'03','tac-hb':'79','TAC':' 79AF'},{'tac-lb':'AF','TAC_DEC':'31151','mnc':'03','tac-hb':'79','TAC':'79AF'}, {'tac-lb':'B1','TAC_DEC':'31153','mnc':'03','tac-hb':'79','TAC':'79B1'},{'tac- lb':'B1','TAC_DEC':'31153','mnc':'03','tac-hb':'79','TAC':'79B1'},{'tac-lb':' B2','TAC_DEC':'31154','mnc':'03','tac-hb':'79','TAC':'79B2'},{'tac-lb':'B2',' TAC_DEC':'31154','mnc':'03','tac-hb':'79','TAC':'79B2'},{'tac-lb':'B3','TAC_DEC':' 31155','mnc':'03','tac-hb':'79','TAC':'79B3'},{'tac-lb':'B3','TAC_DEC':'31155',' mnc':'03','tac-hb' :'79','TAC':'79B3'},{'tac-lb':'B4','TAC_DEC':'31156','mnc':'03','tac-hb':'79' , 'TAC': '79B4'}, {'tac-lb': 'B4', 'TAC_DEC': '31156', 'mnc': '03', 'tac-hb': '79', 'TAC' :'79B4'},{'tac-lb':'A9','TAC_DEC':'31145','mnc':'03','tac-hb':'79','TAC':'79A9' },{'tac-lb':'A9','TAC_DEC':'31145','mnc':'03','tac-hb':'79','TAC':'79A9'},{' tac-lb':'AA','TAC_DEC':'31146','mnc':'03','tac-hb':'79','TAC':'79AA'},{'tac-lb' :'AA','TAC_DEC':'31146','mnc':'03','tac-hb':'79','TAC':'79AA'},{'tac-lb':'AE' , 'TAC_DEC': '31150', 'mnc': '03', 'tac-hb': '79', 'TAC': '79AE'}, {'tac-lb': 'AE', 'TAC_DEC' :'31150','mnc':'03','tac-hb':'79','TAC':'79AE'},{'tac-lb':'C9','TAC_DEC':'31177' , 'mnc': '03', 'tac-hb': '79', 'TAC': '79C9'}, {'tac-lb': 'C9', 'TAC_DEC': '31177', 'mnc' :'03','tac-hb':'79','TAC':'79C9'},{'tac-lb':'CA','TAC_DEC':'31178','mnc':'03' , 'tac-hb': '79', 'TAC': '79CA'}, {'tac-lb': 'CA', 'TAC_DEC': '31178', 'mnc': '03', 'tac- HB':'79','TAC':' 79CA'},{'tac-lb':'C6','TAC_DEC':'31174','mnc':'03','tac-hb':'79','TAC':'79C6'}, {'tac-lb':'C6','TAC_DEC':'31174','mnc':'03','tac-hb':'79','TAC':'79C6'},{'tac- lb':'B0','TAC_DEC':'31152','mnc':'03','tac-hb':'79','TAC':'79B0'},{'tac-lb':' B0','TAC_DEC':'31152','mnc':'03','tac-hb':'79','TAC':'79B0'},{'tac-lb':'99',' TAC_DEC': '39321', 'mnc': '03', 'tac-hb': '99', 'TAC': '9999'}, {'tac-lb': '99', 'TAC_DEC': ' 39321','mnc':'03','tac-hb':'99','TAC':'9999'},{'tac-lb':'7D','TAC_DEC':'31101',' mnc':'03','tac-hb':'79','TAC':'797D'},{'tac-lb':'7D','TAC_DEC':'31101','mnc':' 03','tac-hb':'79','TAC':'797D'},{'tac-lb':'7E','TAC_DEC':'31102','mnc':'03',' tac-hb':'79','TAC':'797E'},{'tac-lb':'7E','TAC_DEC':'31102','mnc':'03','tac-hb' : '79', 'TAC': '797E'}, {'tac-lb': '80', 'TAC_DEC': '31104', 'mnc': '03', 'tac-hb': '79' , 'TAC': '7980'}, {'tac-lb': '80', 'TAC_DEC': '31104', 'mnc': '03', 'tac-hb': '79', 'TAC' : '7980'}, {'tac-lb ':'81','TAC_DEC':'31105','mnc':'03','tac-hb':'79','TAC':'7981'},{'tac-lb':'81 ','TAC_DEC':'31105','mnc':'03','tac-hb':'79','TAC':'7981'},{'tac-lb':'82','TAC_DEC ':'31106','mnc':'03','tac-hb':'79','TAC':'7982'},{'tac-lb':'82','TAC_DEC':'31106 ', 'mnc': '03', 'tac-hb': '79', 'TAC': '7982'}, {'tac-lb': '83', 'TAC_DEC': '31107', 'mnc ':'03','tac-hb':'79','TAC':'7983'},{'tac-lb':'83','TAC_DEC':'31107','mnc':'03 ','tac-hb':'79','TAC':'7983'},{'tac-lb':'84','TAC_DEC':'31108','mnc':'03','tac -hb':'79','TAC':'7984'},{'tac-lb':'84','TAC_DEC':'31108','mnc':'03','tac-hb': '79', 'TAC': '7984'}, {'tac-lb': '85', 'TAC_DEC': '31109', 'mnc': '03', 'tac-hb': '79', 'TAC':'7985'},{'tac-lb':'85','TAC_DEC':'31109','mnc':'03','tac-hb':'79','TAC': '7985'},{'tac-lb':'88','TAC_DEC':'31112','mnc':'03','tac-hb':'79','TAC':'7988'} , {'tac-lb': '88', 'TAC_DEC': '31112', 'mnc': '03', 'tac-hb': '79', 'TAC': '7988'}, {'tac -lb':'8C','TAC_DE C':'31116','mnc':'03','tac-hb':'79','TAC':'798C'},{'tac-lb':'8C','TAC_DEC':' 31116','mnc':'03','tac-hb':'79','TAC':'798C'},{'tac-lb':'8D','TAC_DEC':'31117',' mnc':'03','tac-hb':'79','TAC':'798D'},{'tac-lb':'8D','TAC_DEC':'31117','mnc':' 03','tac-hb':'79','TAC':'798D'},{'tac-lb':'8E','TAC_DEC':'31118','mnc':'03',' tac-hb':'79','TAC':'798E'},{'tac-lb':'8E','TAC_DEC':'31118','mnc':'03','tac-hb' : '79', 'TAC': '798E'}, {'tac-lb': '90', 'TAC_DEC': '31120', 'mnc': '03', 'tac-hb': '79' , 'TAC': '7990'}, {'tac-lb': '90', 'TAC_DEC': '31120', 'mnc': '03', 'tac-hb': '79', 'TAC' :'7990'},{'tac-lb':'91','TAC_DEC':'31121','mnc':'03','tac-hb':'79','TAC':'7991' },{'tac-lb':'91','TAC_DEC':'31121','mnc':'03','tac-hb':'79','TAC':'7991'},{' tac-lb':'93','TAC_DEC':'31123','mnc':'03','tac-hb':'79','TAC':'7993'},{'tac-lb' :'93','TAC_DEC':'31123','mnc':'03','tac-hb':'79','TAC':'7993'},{'tac-lb':'95' , 'TAC_DEC': '31125', 'mn c':'03','tac-hb':'79','TAC':'7995'},{'tac-lb':'95','TAC_DEC':'31125','mnc':' 03','tac-hb':'79','TAC':'7995'},{'tac-lb':'96','TAC_DEC':'31126','mnc':'03',' tac-hb':'79','TAC':'7996'},{'tac-lb':'96','TAC_DEC':'31126','mnc':'03','tac-hb' : '79', 'TAC': '7996'}, {'tac-lb': '97', 'TAC_DEC': '31127', 'mnc': '03', 'tac-hb': '79' , 'TAC': '7997'}, {'tac-lb': '97', 'TAC_DEC': '31127', 'mnc': '03', 'tac-hb': '79', 'TAC' : '7997'}, {'tac-lb': '98', 'TAC_DEC': '31128', 'mnc': '03', 'tac-hb': '79', 'TAC': '7998' },{'tac-lb':'98','TAC_DEC':'31128','mnc':'03','tac-hb':'79','TAC':'7998'},{' tac-lb':'99','TAC_DEC':'31129','mnc':'03','tac-hb':'79','TAC':'7999'},{'tac-lb' :'99','TAC_DEC':'31129','mnc':'03','tac-hb':'79','TAC':'7999'},{'tac-lb':'9A' , 'TAC_DEC': '31130', 'mnc': '03', 'tac-hb': '79', 'TAC': '799A'}, {'tac-lb': '9A', 'TAC_DEC' :'31130','mnc':'03','tac-hb':'79','TAC':'799A'},{'tac-lb':'9B','TAC_DEC':'31131' , 'mnc': '03', 'tac-h b':'79','TAC':'799B'},{'tac-lb':'9B','TAC_DEC':'31131','mnc':'03','tac-hb':' 79','TAC':'799B'},{'tac-lb':'A2','TAC_DEC':'31650','mnc':'03','tac-hb':'7B',' TAC':'7BA2'},{'tac-lb':'A2','TAC_DEC':'31650','mnc':'03','tac-hb':'7B','TAC':' 7BA2'},{'tac-lb':'12','TAC_DEC':'31250','mnc':'03','tac-hb':'7A','TAC':'7A12'}, {'tac-lb':'12','TAC_DEC':'31250','mnc':'03','tac-hb':'7A','TAC':'7A12'},{'tac- lb':'13','TAC_DEC':'31251','mnc':'03','tac-hb':'7A','TAC':'7A13'},{'tac-lb':' 13','TAC_DEC':'31251','mnc':'03','tac-hb':'7A','TAC':'7A13'},{'tac-lb':'CF',' TAC_DEC':'31183','mnc':'03','tac-hb':'79','TAC':'79CF'},{'tac-lb':'CF','TAC_DEC':' 31183','mnc':'03','tac-hb':'79','TAC':'79CF'},{'tac-lb':'CD','TAC_DEC':'31181',' mnc':'03','tac-hb':'79','TAC':'79CD'},{'tac-lb':'CD','TAC_DEC':'31181','mnc':' 03','tac-hb':'79','TAC':'79CD'},{'tac-lb':'CD','TAC_DEC':'31181','mnc':'03',' tac-hb':'79','TAC': '79CD'},{'tac-lb':'CE','TAC_DEC':'31182','mnc':'03','tac-hb':'79','TAC':'79CE'} , {'tac-lb': 'CE', 'TAC_DEC': '31182', 'mnc': '03', 'tac-hb': '79', 'TAC': '79CE'}, {'tac -lb':'CE','TAC_DEC':'31182','mnc':'03','tac-hb':'79','TAC':'79CE'},{'tac-lb': 'CD','TAC_DEC':'31181','mnc':'03','tac-hb':'79','TAC':'79CD'},{'tac-lb':'CE', 'TAC_DEC': '31182', 'mnc': '03', 'tac-hb': '79', 'TAC': '79CE'}]

【讨论】:

    【解决方案2】:

    使用您提供的值,这对我有用:

    In [23]: keys_mnc03
    Out[23]: ['tac-lb', 'TAC_DEC', 'mnc', 'tac-hb', 'TAC']
    
    mnc03 = huge list of dictionaries
    
    with open("test.txt",'wb') as resultado:
         dict_writer = csv.DictWriter(resultado, keys_mnc03)
         dict_writer.writeheader()
         for d in mnc03:
             dict_writer.writerow(d)
    

    您还可以使用此代码检查字段是否在列表中:

    for e in mnc03:
        for key in e.keys():
            if key not in keys_mnc03:
                print "key %s not in keys" % key
    

    【讨论】:

    • 那么,我通过打印 keys_mnc03 中的值来进行过滤,结果得到了? ['tac-lb', 'TAC_DEC', 'mnc', 'tac-hb', 'TAC'],如果你注意到我列表中的每个 dict 都有这些头? {'tac-lb':'7e','TAC_DEC':'33150','mnc':'02','tac-hb':'81','TAC':'817e'}
    • 我不得不将其作为答案,因为值太多
    • 我发现了问题@lapinkoira!!我不敢相信...但我只需将 writerow 更改为 writerows...非常感谢您的帮助和时间!
    • 是的,在 mnc02 的情况下它工作很奇怪......为了让它工作,我必须循环 mnc03 并插入每一行,或者如你所说,你也可以使用 writerows,我是对 csv 的库方法不太友好
    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2016-10-26
    • 2014-06-17
    • 2018-07-18
    相关资源
    最近更新 更多