读取文件并使用python创建多维词典 - python

            
                    
我需要在分层数据结构中读取和存储文件的内容。该文件具有以下结构:


    [server01]
        Status01 = abc
        Option01 = 123  
        Option02 = testadata0|testadata1|testdata2

    [server02]
        Status01 = def
        Option01 = 456  

我曾经使用Perl的哈希值在Perl中编写代码,这真是小菜一碟。我似乎在python中找不到类似的方法。我看到了一些示例,其中人们定义字典,例如:


    people = {1: {'name': 'Jim', 'age': '24', 'sex': 'Male'},
              2: {'name': 'Claire', 'age': '23', 'sex': 'Female'}}

仍然没有使用文件中的数据在循环中创建数据结构的示例。
谁能提供一个例子。

为了进一步说明我的意思,这就是Perl中的结构:


    %HoH = (
        server01 => {
            Status01 => "abc",
            Option01 => "123",
            Option02 => "testadata0|testadata1|testdata2"
        },
        server02 => {
            Status02 => "def",
            Option01 => "456",

        },

参考方案

如果是toml文件,我真的建议您听龙猫的回答,

但是,如果您想要一个有关如何读取文件并做出判断的示例,那么这里是一个完整的示例

您的data.txt文件

[server01]
Status01 = abc
Option01 = 123  
Option02 = testadata0|testadata1|testdata2
[server02]
Status01 = def
Option01 = 456

您的python文件

with open('data.txt', 'r') as f: #This allows you to read a file, and automatically close it at the end
    data = {}
    key = None
    for line in f:
        cleaned_line = line.strip('\n') # A lot of special cases, just for the example you strip the line on new cline character

        # Find a new key
        if cleaned_line.startswith('['):
            key = cleaned_line.strip('[').strip(']')
            data[key]={}

        else:
            status, value = cleaned_line.split(' = ') # To simplify our life we can unpack the value as soon as we create the list
            data[key][status] = value
print(data)
# output: {'server01': {'Status01': 'abc', 'Option01': '123  ', 'Option02': 'testadata0|testadata1|testdata2'}, 'server02': {'Status01': 'def', 'Option01': '456'}}

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…