我正在尝试创建一个包含文件列表的字典,但是由于不知道如何执行操作,我有点发疯。我有一个包含以下信息的文件
1 aa, ab, ac, ad
2 er, rt, tr, ui
3 ty, gj, od, rt
而且我需要它的格式类似于下面的格式
{1: ['aa', 'ab', 'ac', 'ad'], 2: ['er', 'rt', 'tr', 'ui'], 3: ['ty', 'gj', 'od', 'rt']}
我可以根据需要更改输入文件的格式,但无法使它正常工作,有人可以帮助我或向正确的方向指出吗?
使用下面的代码,您可以将格式加载到dict中,假设linenumber = json中的键
test.txt
aa, ab, ac, ad
er, rt, tr, ui
ty, gj, od, rt
python
import csv,json
with open('test.txt') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
data = {}
i = 0
for row in csv_reader:
i+=1
data.update({i:row})
data = json.dumps(data)
loaded_data = json.loads(data) # json object
print(loaded_data)
OUT: {'1': ['aa', ' ab', ' ac', ' ad'], '2': ['er', ' rt', ' tr', ' ui'], '3': ['ty', ' gj', ' od', ' rt']}
您可以尝试这个。
out = dict()
with open('test.txt') as f:
for line in f:
k,*v = line.split()
out[k]=[s.rstrip(',') for s in v]
print(out)
# {'1': ['aa', 'ab', 'ac', 'ad'], '2': ['er', 'rt', 'tr', 'ui'], '3': ['ty', 'gj', 'od', 'rt']}
尝试此online
您可以放下逗号,并用空格分隔每行:
res = {}
for line in open('data.txt').read().replace(',', '').splitlines():
items = line.split(' ')
res[items[0]] = items[1:]
print(res)
输出:
{'1': ['aa', 'ab', 'ac', 'ad'], '2': ['er', 'rt', 'tr', 'ui'], '3': ['ty', 'gj', 'od', 'rt']}
怎么样?:
with open('your-file-name.txt') as fin:
your_dict = {line[0]: line[2:].rstrip().split(', ') for line in fin.readlines()}