我是python的新手,目前在将文件中的数据导入到小型游戏中时遇到问题。
我的文件格式如下:
Playername1
A;0,1;0,2;0,3
B;1,1;1,2;1,3
我目前正在尝试找到一种方法,以“播放器名称”为键,并以包含字母(每行开头)的键列表为键,值是元组列表的方式,将其导入字典中(坐标)。
到目前为止,我已经尝试过(但失败了):
结合使用dict()函数和readlines()函数以及split(;)函数来分割坐标。但是,每当我尝试读取带有截止日期(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']]}]}