【问题标题】:Need help creating dictionary from csv excel file需要帮助从 csv excel 文件创建字典
【发布时间】:2018-05-10 21:48:24
【问题描述】:

我有一个任务是创建一个函数 loadResults 来存储跑步者的人数、时间、姓名和姓氏,并返回包含这些信息的字典列表。字典的键是:“数字”、“姓名”、“姓氏”、“时间”。到目前为止,我有:

def loadResults():


    myFile = open("marathon.csv", "r")

    number = []

    for line in myFile:

       info = line.split(',')
       s = {}
       s['number'] = info[0]
       s['time'] = info[1]
       s['firstname'] = info[2]
       s['surname'] = info[3:]
       number.append(s)

    myFile.close

    return number

然而,我还必须编写一个函数 displayTime,它接收跑步者列表和跑步者的数量,并显示姓名和时间。我有:

def displayTime(time,number,firstname):

    for s in number:
      if s['number'] == time:
        print(s['name'])


    runners = loadResults()
    displayTime(number,'3070')

很遗憾,我没有得到任何帮助,我们将不胜感激。

【问题讨论】:

  • 请更正您的代码格式。
  • 能否展示一些示例数据?
  • 你能发布你的整个代码吗?可能你的文件打开有错误(你试过用“with”方法吗?)

标签: python excel python-3.x csv dictionary


【解决方案1】:

你可以使用csv.DictReader:

import csv
with open('your_file') as csvfile:
    reader = csv.DictReader(csvfile)

那么reader就是字典。

如果 csv 文件的第一行没有键,您可以使用fieldnames

import csv
with open('your_file') as csvfile:
    reader = csv.DictReader(csvfile, fieldnames=['number', 'name', 'surname', 'time'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    相关资源
    最近更新 更多