从一个方法中提取的数据在其他方法中调用时无法正确解析.
class AppTool:
def __init__(self, local_ip=None, host_ip=None, interval=None, transfer=None, bandwidth=None, app_results=None):
self.local_ip = local_ip
self.host_ip = host_ip
self.interval = interval
self.transfer = transfer
self.bandwidth = bandwidth
self.app_results = app_results if app_results is not None else {}
@staticmethod
def extract_information(output):
local_ip_match = re.search(r'local (\d+\.\d+\.\d+\.\d+)', output)
host_ip_match = re.search(r'Connecting to host (\d+\.\d+\.\d+\.\d+)', output)
receiver_line_match = re.search(
r'([\d.]+-[\d.]+)\s+sec\s+([\d.]+\s+\w?Bytes)\s+([\d.]+\s+\w?bits/sec)\s+receiver', output)
if local_ip_match and host_ip_match and receiver_line_match:
local_ip = local_ip_match.group(1)
host_ip = host_ip_match.group(1)
interval, transfer, bandwidth = receiver_line_match.groups()
print("Extracted Information - local_ip", local_ip)
print("Extracted Information - host_ip", host_ip)
print("Extracted Information - interval", interval)
print("Extracted Information - transfer", transfer)
print("Extracted Information - bandwidth", bandwidth)
return AppTool(local_ip, host_ip, interval, transfer, bandwidth)
else:
return None
在上面的方法中,键正在解析正确的值.但是,当在下面的方法中调用它时,它接受的值不正确
@staticmethod
def create_config_map_manifest(extracted_info, app_results=None):
data = {
"local_IP": extracted_info.local_ip,
"host_IP": extracted_info.host_ip,
"interval": extracted_info.interval,
"transfer": extracted_info.transfer,
"bandwidth": extracted_info.bandwidth,
}
if app_results:
data["app_results"] = app_results
config_map_manifest = yaml.dump(data, default_flow_style=False)
print("ConfigMap Data:", config_map_manifest)
return data
在执行代码时,输出如下所示.未在CREATE_CONFIG_MAP_MANIFEST()中正确设置从EXTECTED_INFORMATION提取的值.出现了不匹配的情况
Extracted Information - local_ip 10.122.1.159
Extracted Information - host_ip 10.122.1.150
Extracted Information - interval 0.00-5.02
Extracted Information - transfer 10.8 GBytes
Extracted Information - bandwidth 18.4 Gbits/sec
-------------------------------
ConfigMap Data: bandwidth: null
host_IP: 0.00-5.02
interval: 10.8 GBytes
local_IP: 10.122.1.150
transfer: 18.4 Gbits/sec
如何在调用其他方法时保留YAML键值及其顺序?