我需要在分层数据结构中读取和存储文件的内容。该文件具有以下结构:
[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…