试图创建包含文件列表的python字典

问题描述 投票:-1回答:4

我正在尝试创建一个包含文件列表的字典,但是由于不知道如何执行操作,我有点发疯。我有一个包含以下信息的文件

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']}

我可以根据需要更改输入文件的格式,但无法使它正常工作,有人可以帮助我或向正确的方向指出吗?

python file-handling
4个回答
0
投票

使用下面的代码,您可以将格式加载到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']}

0
投票

您可以尝试这个。

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


0
投票

您可以放下逗号,并用空格分隔每行:

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']}

0
投票

怎么样?:

with open('your-file-name.txt') as fin:
   your_dict = {line[0]: line[2:].rstrip().split(', ') for line in fin.readlines()}
© www.soinside.com 2019 - 2024. All rights reserved.