python:字典操作,KeyError:';0';

python:字典操作,KeyError:';0';,python,directory,Python,Directory,我想从文本文件中提取信息,并将数据存储在目录中。该文件记录分号分隔的值。也就是说,它在一行中记录一个属性,键和值之间用分号和空格分隔 def info_file_parser(info_file): f=open(info_file,'rb') info={} for line in f: line=line.rstrip() mlist=line.split(": ") if len(mlist)==2: info[mlist[0]]=info[

我想从文本文件中提取信息,并将数据存储在目录中。该文件记录分号分隔的值。也就是说,它在一行中记录一个属性,键和值之间用分号和空格分隔

def info_file_parser(info_file):
  f=open(info_file,'rb')
  info={}
  for line in f:
    line=line.rstrip()
    mlist=line.split(": ")
    if len(mlist)==2:
      info[mlist[0]]=info[mlist[1]]

if __name__='__main__':
  fname="/Users/me/info.txt"
  info_file_parser(fname)

KeyError:“0”。怎么了?为什么我不能通过赋值创建键?

您试图在字典中设置一个不存在的键

在函数的
if
语句中,它不应该是:

if len(mlist)==2:
      info[mlist[0]]=mlist[1]
这一行:

info[mlist[0]]=info[mlist[1]]
尝试使用键mlist[1]存储info DICTORIAL中的值,然后尝试以下操作:

info[mlist[0]]=mlist[1]

我想应该是这个
info[mlist[0]]=mlist[1]
@VigneshKalai你是对的。谢谢。:)
info[mlist[0]]=info[mlist[1]
info[mlist[1]part试图访问并返回info dict中mlist[1]键的值,但该值不存在exist@dudu很乐意帮忙:)我想你可以接受一个向你解释清楚的答案