Python 读取tsv列并存储在字典中,结果为无值
我有一个tsv文件,格式如下:Python 读取tsv列并存储在字典中,结果为无值,python,python-2.7,csv,dictionary,text,Python,Python 2.7,Csv,Dictionary,Text,我有一个tsv文件,格式如下: first 44 90 org second 80 49 sport third 50 52 NIL 该文件由以下代码编写: id = first before = 44 after = 90 taregt = org with open('/path/to/file.tsv', 'w') as f: result = u'\t'.join([ id, Before, After,
first 44 90 org
second 80 49 sport
third 50 52 NIL
该文件由以下代码编写:
id = first
before = 44
after = 90
taregt = org
with open('/path/to/file.tsv', 'w') as f:
result = u'\t'.join([
id,
Before,
After,
target])
f.write(result+'\n')
我想把中间的两列作为value
读入两个字典,第一列作为键
。我有以下示例可编译代码,但它将值存储为None
start = {}
end = {}
with open('/path/to/file.tsv', 'rd') as f:
for line in f:
parts = line.decode('utf-8').split('\t')
key = parts[0]
print(key)
start[key] = parts[1]
end[key] = parts[2]
print(key , start.get(key), end.get(key))
打印输出为:
(u’(第一个)’,无,无)
我正在使用python 2.7。先谢谢你 它对我来说很有魅力
检查您是否使用正确的模式读取文件。python中没有模式为
rd
。使用rb
或rU
。你的代码可以正常工作
start = {}
end = {}
with open('path to file', 'rb') as f:
for line in f:
parts = line.split('\t')
key = parts[0]
# print(key)
# print parts
start[key] = parts[1]
end[key] = parts[2]
print(key , start.get(key), end.get(key))
小心
start[y]
和end[y]
,而不是y
,它会变成键
,对我来说非常适合(确保file.tsv由选项卡分隔)。你能证实这个文件有制表符而不是空格吗?@lucas谢谢你刚刚编辑了这个问题,它会增加这个问题的内容。嗨,你说的模式是什么意思?正如我声明的那样,我使用了“rd”。我想没有像“rd”这样的模式。你指的是“rb”吗?或者它可能是“rD”,令人惊讶的是,这不是错误输出的原因,但它确实是错误的文件读取方法,解释器决定忽略它。谢谢