Python 3.x for循环获取键值对中的元素
我试图从csv文件中读取数据,并希望将其存储在键值对中 我正在尝试的代码如下:Python 3.x for循环获取键值对中的元素,python-3.x,pandas,Python 3.x,Pandas,我试图从csv文件中读取数据,并希望将其存储在键值对中 我正在尝试的代码如下: csv_data = [] with open('/Users/tejas/textTocsv/pair.csv') as paircsv: reader = csv.DictReader(paircsv, delimiter = ',' ) for row in reader: #im stucked over here pair.csv数据 id ppid 1 22rt
csv_data = []
with open('/Users/tejas/textTocsv/pair.csv') as paircsv:
reader = csv.DictReader(paircsv, delimiter = ',' )
for row in reader:
#im stucked over here
pair.csv数据
id ppid
1 22rt3
12 3456r4
23 w232w
我希望数据在键值对中,以便我可以在程序中进一步使用它。
提前感谢您。您的思路是正确的,但正如@Heike所指出的,考虑到您的数据结构,您最好使用
csv.reader
而不是csv.DictReader
。下面是一个示例,说明了如何从csv文件开始,然后使用字典结束,以便以后在程序中使用
例如:
from io import StringIO
import csv
# Simplified the example using StringIO instead of file I/O.
# Note: replaced spaces with commas as delimeters
paircsv = StringIO("""id,ppid
1,22rt3
12,3456r4
23,w232w
""")
# Commenting this out for StringIO example
# with open('/Users/tejas/textTocsv/pair.csv') as paircsv:
reader = csv.reader(paircsv, delimiter = ',' )
# Construct a dictionary from the key, value pairs in the CSV file
csv_data = {
key: value
for key, value in reader
}
print(my_dict)
输出:
{'id': 'ppid', '1': '22rt3', '12': '3456r4', '23': 'w232w'}
存储在字典中的一个简单示例
import csv
csv_data={}
with open("/Users/tejas/textTocsv/pair.csv") as paircsv:
reader =csv.reader(paircsv)
for key,value in reader:
csv_data[key]=value
print(csv_data)
输出
如果您想获得诸如
(1,'22rt3')
,(12,'3456r4)
等键值对,最好使用csv.reader
而不是csv.DictReader
。出现异常:ValueError没有足够的值来解压缩(预期为2,得到1)获取此错误访问文件可能有问题,或者文件结构不正确。正在尝试解决此问题,并尝试所有可能的方法来解决此错误异常已发生:ValueError没有足够的值来解包(预期为2,获得1)获取此错误我的示例设计用于处理以逗号分隔的键值对,而不是像您的示例中那样的空格(请参见我的代码注释)。您是否已将CSV文件格式切换为使用逗号匹配代码?是的,现在可以使用了。谢谢您的帮助:)
{'id': 'ppid', '1': '22rt3', '12': '3456r4', '23': 'w232w'}