簡體   English   中英

從str> float> int轉換CSV信息,然后將其分配給字典中的值

[英]Converting CSV information from str > float > int then assigning it to a value in a dictionary

當前代碼...

import csv
import itertools

students = {}
def studentGradeCSV():
    with open('/Users/home/Downloads/gradebook-export.csv') as csvfile:
        reader = csv.DictReader(csvfile)
        global students
        students = {}
        for row in reader:
            name = row['Last Name'] + ', ' + row['First Name']
            grade = row['Overall']
            new_grade = []
            for g in grade:
                try:
                    v = int(float(g))
                    new_grade.append(v)
                except ValueError:
                    new_grade.append(g)
            for n, gr in itertools.product(name, new_grade):
                students[n] = gr

'等級'索引的示例-'N / A','92.13','100','87.2','91','0'

“等級”變量是字符串。 我想先將它們轉換為整數,然后再將它們作為鍵值分配給'name'變量中的值。 我以前已經能夠將'grade'int密鑰轉換為名稱值,但是它們的分配不正確,因為字典無法正確地抓住它們。

不確定從這里去哪里??

不知道為什么要對單個值使用for循環:

    name = row['Last Name'] + ', ' + row['First Name']
    grade = row['Overall']
    try:
        grade = int(float(grade))
    except ValueError:
        pass
    students[name] = grade

您的for循環和itertools.product將字符串視為字符序列,例如

for g in 'N/A':

將產生new_grade = ['N', '/', 'A']
然后:

itertools.product("Name", ['N', '/', 'A']

產生序列('N', 'N'), ('N', '/'), ('N', 'A'), ('a', 'N'), ...你在看什么

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM