Python:将文件读入字典/列表

时间:2019-01-04 14:31:59

标签: python dictionary file-handling

我是python的新手,目前在将文件中的数据导入到小型游戏中时遇到问题。

我的文件格式如下:

Playername1
A;0,1;0,2;0,3
B;1,1;1,2;1,3

我目前正在尝试找到一种方法,以“播放器名称”为键,并以包含字母(每行开头)的键列表为键,值是元组列表的方式,将其导入字典中(坐标)。

到目前为止,我已经尝试过(但失败了):

结合使用dict()函数和readlines()函数以及split(;)函数来分割坐标。但是,每当我尝试读取带有截止日期(1)的第一行时,它都不会返回整行。

寻找一种有效地做到这一点的方法。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

使用csv模块。阅读第一行并存储在主密钥中

然后读取其余的行,并使用列表切片构建字典列表。要创建列表,请对每个单元格值应用split以创建2元素列表。

import csv

with open("input.csv") as f:
    cr = csv.reader(f,delimiter=";")
    master_key = next(cr)[0]
    dict_list = [{row[0]:[x.split(",") for x in row[1:]]} for row in cr]

result = {master_key:dict_list}

>>> result
{'Playername1': [{'A': [['0', '1'], ['0', '2'], ['0', '3']]},
             {'B': [['1', '1'], ['1', '2'], ['1', '3']]}]}