小编spa*_*imp的帖子

使用标题词作为键从.CSV文件创建词典列表

我正在尝试从我的.csv文件创建一个字典列表.我想让文件的第一行成为字典键,并在列的下面对应它们的值.这已经使用.txt文件成功完成,它完美地运行.当我尝试使用.csv格式时,我遇到了能够调用特定密钥的问题,因此我认为它无法正常工作.

newqstars = [meteor['M_P'] for meteor in kept2]

>>>KeyError: 'M_P'
Run Code Online (Sandbox Code Playgroud)

我一直在尝试其他方法,如DictReader()和csv.reader(),但它们不起作用所以我只是问我如何修改下面的内容以便能够处理.csv

def example_05(filename):


    with open(filename,'r') as file : data = file.readlines()
    header, data = data[0].split(), data[1:] 

    #................ convert each line to a dict, using header 
    # words as keys

    global kept2 
    kept2 = []

    for line in data :
        line = [to_float(term) for term in line.split()]
        kept2.append( dict( zip(header, line) ) )

if __name__ == '__main__' :

    example_05('Geminids.csv')
Run Code Online (Sandbox Code Playgroud)

python csv dictionary list

1
推荐指数
1
解决办法
2008
查看次数

Python忽略命令从列表中删除项目

我正在过滤一大堆字典.kept是全局列表,它包含大约9000个字典,所有字典都具有相同的键.我正在尝试删除每个字典,其中'M_P'值大于-4.5,并且有超过一半的字典,所以我创建了一个仅用于其目的的函数.当我检查它们是否已在后来的功能中被删除时,仍然剩下~3000.任何人都可以告诉我为什么会发生这种情况,我相信这些功能会做我告诉它的事吗?

def removeMag():

    countMag = 0
    for mag in kept:
        if to_float(mag['M_P']) > -4.5:
            kept.remove(mag)
            countMag += 1
        else:
            continue

    print '\n'
    print ' Number of mags > -4.5 actually removed: '
    print countMag

def remove_anomalies():    
    count = 0
    count08 = 0
    count09 = 0
    count01 = 0
    countMag = 0
    countMagDim = 0
    #Want to remove Q* < 15 degrees
    for row in kept:
        #to_float(kept(row))
        #Q* greater than 15
        if to_float(row['Q*']) < 15.00:
            kept.remove(row)
        elif to_float(row['vel']) > …
Run Code Online (Sandbox Code Playgroud)

python dictionary for-loop list

-1
推荐指数
1
解决办法
66
查看次数

标签 统计

dictionary ×2

list ×2

python ×2

csv ×1

for-loop ×1