Python 如何从csv创建字典,其中每个索引值都是其主题类型

Python 如何从csv创建字典,其中每个索引值都是其主题类型,python,csv,dictionary,indexing,writing,Python,Csv,Dictionary,Indexing,Writing,我正在尝试使用此代码将csv文件读入字典 import csv with open('Trials/readtest.csv', mode='r') as infile: reader = csv.reader(infile) with open('Trials/readtest_2.csv', mode='w') as outfile: writer = csv.writer(outfile) mydict = {rows[0]: type(r

我正在尝试使用此代码将csv文件读入字典

import csv

with open('Trials/readtest.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('Trials/readtest_2.csv', mode='w') as outfile:
        writer = csv.writer(outfile)
        mydict = {rows[0]: type(rows[1]) for rows in reader}
    print(mydict)
csv文件包含以下内容

option 1    1
option 2    True
option 3    False
option 4    no_cursor
option 5    5
option 6    6
option 7    7
option 8    8
option 9    9
option 10   10
option 11   11
option 12   12
option 13   13
我正在尝试创建字典,以便第一列中的每个值都为第二列中特定类型的值建立索引。e、 g,1是整数,True是布尔值,False是布尔值,no_游标是字符串,等等

但是,当我运行代码时,保存到字典中的所有值都会自动转换为字符串


在此方面的任何帮助都将不胜感激

如果您想要对如何将字符串解析为类型进行更细粒度的控制,例如,如果您有一些自定义对象,则需要不同的方法,但您可以使用
ast.literal\u eval
来覆盖所有基本的内置类型。基本上,它可以
eval
,但可以安全地将任意字符串转换为适当的类型。请在此处阅读更多信息:


如果您想要更细粒度地控制如何将字符串解析为类型,例如,如果您有一些自定义对象,则需要不同的方法,但您可以使用
ast.literal\u eval
覆盖所有基本内置类型。基本上,它可以
eval
,但可以安全地将任意字符串转换为适当的类型。请在此处阅读更多信息:


谢谢你帮了大忙!:)但是,literal_eval()函数似乎试图计算字面上应该是字符串的索引,并返回一个异常“Value Error:malformed string”。这是因为它希望参数是有效的文本,而对于字符串文本,它们必须用引号括起来。您需要创建数据,以便字符串值周围有引号,或者作为一种解决方法,您可以捕获异常并假设它应该是字符串。非常感谢您的帮助!:)但是,literal_eval()函数似乎试图计算字面上应该是字符串的索引,并返回一个异常“Value Error:malformed string”。这是因为它希望参数是有效的文本,而对于字符串文本,它们必须用引号括起来。您需要创建数据,以便字符串值周围有引号,或者作为一种解决方法,您可以捕获异常并假设它应该是字符串。
import csv
import ast

with open('Trials/readtest.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('Trials/readtest_2.csv', mode='w') as outfile:
        writer = csv.writer(outfile)
        mydict = {rows[0]: ast.literal_eval(rows[1]) for rows in reader}
    print(mydict)