gpt4 book ai didi

python - 我在 python 中解析数据文件时遇到 KeyError

转载 作者:行者123 更新时间:2023-12-01 03:36:00 24 4
gpt4 key购买 nike

def loadMovieLens(path='C:\Users\karan\Desktop\ml-100k'):
# Load data
prefs={}
for line in open(path+'/new1.data'):
(user,title,rating,ts)=line.split('\t')[0:4]
prefs[user][title]=float(rating)
return prefs

我在解析文件时遇到 KeyError。

最佳答案

您的字典还没有键,因此 data[user] 不存在。您可以使用 dict.setdefault() 方法让 Python 为缺失的键添加默认值:

prefs.setdefault(user, {})[title] = float(rating)

上面的内容告诉 prefs 添加 {}(一个空字典)作为 user 中指定的键的值(如果该键不存在)还不存在。无论哪种方式,都会返回现有值或新值。

经过一些小的改进,完整的功能就变成了:

def loadMovieLens(path='C:\Users\karan\Desktop\ml-100k'):
prefs = {}
with open(os.path.join(path, 'new1.data')) as f:
for line in f:
user, title, rating, ts = line.split('\t', 4)[:4]
prefs.setdefault(user, {})[title] = float(rating)
return prefs

我添加了一个 with 语句(因此读取完成后文件会正确关闭),使用 os.path.join() 构建路径(因此它处理独立于当前操作系统的路径分隔符)并将分割限制为 4 次。

您也可以切换到 csv 模块来处理选项卡上的拆分。

关于python - 我在 python 中解析数据文件时遇到 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40386970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com