Python csv文件到字典
我想从csv文件写入字典 但是:Python csv文件到字典,python,csv,dictionary,Python,Csv,Dictionary,我想从csv文件写入字典 但是: 一行中的第一个单词应该是关键字 行中的所有其他单词都应该是该键的独立值 到目前为止,我的代码是: def coordinates(text): import csv reader = csv.reader(open(text)) d = {} for row in reader: key = row[0] d[key] = row[1:] print(d) coordinates('lu
def coordinates(text):
import csv
reader = csv.reader(open(text))
d = {}
for row in reader:
key = row[0]
d[key] = row[1:]
print(d)
coordinates('luchthavens2.csv')
使用此代码,行中的所有项都是我的字典中的键
谁能帮忙
编辑:
输入文件如下所示:
BIN,“巴米扬”,“巴米扬”,“阿富汗”,“阿富汗”,34.800000,67.816667701,“阿富汗”\N\N,1149361
英国夏令时,“波斯特”,“波斯特”,“阿富汗”,“阿富汗”,31.550000,64.366667701,“阿富汗”,11347201149361
CCN,“查克查兰”,“查克查兰”,“阿富汗”,“阿富汗”,34.533333,65.266667701,“阿富汗”,\N\N,1149361
全部来自名为Luchhavens2.csv的excel文件,文本位置为A1-A2-A3-etc
你可以在这里找到它:
输出:
{
'CCN,"Chakcharan","Chakcharan","Afghanistan","AF",34.533333,65.266667,701,"Afghanistan",\\N,\\N,1149361': [],
'BST,"Bost","Bost","Afghanistan","AF",31.550000,64.366667,701,"Afghanistan",\\N,1134720,1149361': [],
'BIN,"Bamiyan","Bamiyan","Afghanistan","AF",34.800000,67.816667,701,"Afghanistan",\\N,\\N,1149361': []
}
编辑:
我已将输入文件更改为文本文件,然后再次更改为csv文件。奇怪的是,这样做很有效,我可以毫无问题地阅读它。如果您运行以下命令
import pprint
import csv
def coordinates(text):
ret = {}
with open(text, 'r') as fp:
reader = csv.reader(fp)
for row in reader:
key = row.pop(0)
ret[key] = row
return ret
data = coordinates('data.csv')
pprint.pprint(data)
在以下文件中
$ cat data.csv
AAA,"Blub",25.25
BBB,"Blob",27.27
然后你会得到
$ python stackoverflow.py
{'AAA': ['Blub', '25.25'], 'BBB': ['Blob', '27.27']}
在输入文件中,引号被弄乱了
"BIN,""Bamiyan"",""Bamiyan"",""Afghanistan"",""AF"",34.800000,67.816667,701,""Afghanistan"",\N,\N,1149361"
"BST,""Bost"",""Bost"",""Afghanistan"",""AF"",31.550000,64.366667,701,""Afghanistan"",\N,1134720,1149361"
"CCN,""Chakcharan"",""Chakcharan"",""Afghanistan"",""AF"",34.533333,65.266667,701,""Afghanistan"",\N,\N,1149361"
应该是
"BIN","Bamiyan","Bamiyan","Afghanistan","AF",34.800000,67.816667,701,"Afghanistan",\N,\N,1149361
"BST","Bost","Bost","Afghanistan","AF",31.550000,64.366667,701,"Afghanistan",\N,1134720,1149361
"CCN","Chakcharan","Chakcharan","Afghanistan","AF",34.533333,65.266667,701,"Afghanistan",\N,\N,1149361
这将为您提供所需的输出。 您的数据不是正确的CSV格式
import csv
reader = csv.reader(open('luchthavens2.csv'))
d = {}
for row in reader:
row = row[0].split(',')
key = row[0]
d[key] = row[1:]
您不需要CSV模块,因为您的数据不是正确的CSV
下面的代码将在没有CSV模块的情况下解决您的问题
d = dict()
with open('luchthavens2.csv') as fh:
for row in fh:
row = row.split(',')
key = row[0]
d[key] = row[1:]
你有什么样的数据可以给我们看吗?像
text
通常是什么样子的?像这样的东西(只有一行):BIN,“Bamiyan”,“Bamiyan”,“Afghanistan”,“AF”,34.800000,67.816667701,“Afghanistan”,\N\N,1149361@Roelland如果行为:宾、“巴米扬”、“巴米扬”、“阿富汗”、“阿富汗”,34.800000,67.816667701,“阿富汗”,\N、 \N,114936,输出是什么?将其上载到诸如expirebox之类的托管文件,然后在此处发布链接。如果您的数据不正确,则会出现不平衡的引用。修好它,你就应该很好/实际上我仍然有同样的问题!但可能与输入文件有关(请参阅帖子上的回复)。无论如何,谢谢你的努力!