Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x for循环获取键值对中的元素_Python 3.x_Pandas - Fatal编程技术网

Python 3.x for循环获取键值对中的元素

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文件中读取数据,并希望将其存储在键值对中

我正在尝试的代码如下:

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'}