从只有tex的文件创建嵌套字典

2024-03-29 02:08:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,文件头和值行是:

site,access_key,secret_access_key
sa1,something,something 
na1,something,something 

等等。我希望这本字典看起来像

site_dict = {"sa1" :{"access_key" : "something", "secret_access_key" : "something"}, "na1" :{"access_key" : "something", "secret_access_key" : "something"}}

我尝试了这里所建议的:How to create a nested dictionary from a csv file with N rows in Python但是它处理的是数值,我无法将它改为字符串值。任何帮助都将不胜感激。如果你提出一个建议或提供一个答案,请把它作为一个答案,这样我可以适当地标记它。编辑:我通过添加引号将sa1和na1改为键


Tags: 文件csvtokey答案secret字典access
1条回答
网友
1楼 · 发布于 2024-03-29 02:08:48

您可以使用csv模块来读取和预读取第一行以获取关键字名称:

# create data
with open("f.txt","w") as f:
    f.write("""site,access_key,secret_access_key
sa1,something111,something111 
na1,something222,something222""")

import csv

result = {}
with open("f.txt") as f:
    # get the keynames from the 1st line
    fields = next(f).strip().split(",")
    reader = csv.reader(f)
    # process all other lines
    for line in reader:
        # outer key is 1st value
        # inner key/values are from the header line and rest of line data
        result[line[0]] = dict(zip(fields[1:],line[1:]))

print(result)

输出:

{'sa1': {'access_key': 'something111', 'secret_access_key': 'something111'}, 
 'na1': {'access_key': 'something222', 'secret_access_key': 'something222'}}

查找:csv

相关问题 更多 >