Skip to content
Snippets Groups Projects
Commit 897c9db5 authored by Richter, Manuela's avatar Richter, Manuela
Browse files

updated code style regarding flake8 comments

parent 76b78c71
No related branches found
No related tags found
No related merge requests found
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
Created on Thu May 5 17:27:38 2022 Created on Thu May 5 17:27:38 2022 .
@author: Richter @author: Richter
testfile for operating with json-files testfile for operating with json-files
""" """
#%% import moduls # %% import moduls
import json import json
import numpy as np # import numpy as np
import pandas as pd import pandas as pd
import h5py as h5 # import h5py as h5
# %% define functions
#%% define functions
def findkeys(node, kv): def findkeys(node, kv):
''' """
https://stackoverflow.com/questions/9807634/find-all-occurrences-of-a-key-in-nested-dictionaries-and-lists https://stackoverflow.com/questions/9807634/find-all-occurrences-of-a-key-in-nested-dictionaries-and-lists.
Parameters Parameters
---------- ----------
...@@ -30,46 +32,84 @@ def findkeys(node, kv): ...@@ -30,46 +32,84 @@ def findkeys(node, kv):
TYPE TYPE
DESCRIPTION. DESCRIPTION.
''' """
if isinstance(node, list): if isinstance(node, list):
for i in node: for i in node:
for x in findkeys(i, kv): for x in findkeys(i, kv):
yield x yield x
elif isinstance(node, dict): elif isinstance(node, dict):
if kv in node: if kv in node:
yield node[kv] yield node[kv]
for j in node.values(): for j in node.values():
for x in findkeys(j, kv): for x in findkeys(j, kv):
yield x yield x
def find_attribut(data,attribut): def find_attribut(data, attribut):
name_pump = list(findkeys(data, "Name")) """
efficiency_pump = list(findkeys(data, attribut)) Find attribute of .
#print("Die Pumpe",name_pump[0],"besitzt den Wirkungsgrad", efficiency_pump[0])
return name_pump, efficiency_pump ----------
data : TYPE
DESCRIPTION.
attribut : TYPE
DESCRIPTION.
Returns
-------
name_pump : TYPE
DESCRIPTION.
efficiency_pump : TYPE
DESCRIPTION.
"""
name_pump = list(findkeys(data, "Name"))
efficiency_pump = list(findkeys(data, attribut))
# print("Die Pumpe",name_pump[0],"besitzt den Wirkungsgrad", efficiency_pump[0])
return name_pump, efficiency_pump
def calculate_efficiency(eta_1, eta_2): def calculate_efficiency(eta_1, eta_2):
"""
Parameters.
----------
eta_1 : TYPE
DESCRIPTION.
eta_2 : TYPE
DESCRIPTION.
Returns
-------
eta : TYPE
DESCRIPTION.
"""
eta = eta_1 * eta_2 eta = eta_1 * eta_2
return eta return eta
#%% main script # %% main script
with open("test_data.json","r+") as file:
with open("test_data.json", "r+") as file:
data = json.load(file) data = json.load(file)
a = data.keys() a = data.keys()
#print(a) # print(a)
# read out key - value - pairs # read out key - value - pairs
for i in a: for i in a:
key = data[i] key = data[i]
for j in range(0,len(key)): for j in range(0, len(key)):
#print(j) # print(j)
dic = key[j] dic = key[j]
attrs = list(dic.keys()) attrs = list(dic.keys())
for x in attrs: for x in attrs:
name = list(findkeys(dic, x)) name = list(findkeys(dic, x))
#print("Maschinenart", i, "Das Attribut",x, "hat den Wert", name) # print("Maschinenart", i, "Das Attribut",x, "hat den Wert", name)
# find specific data # find specific data
machine = "Motors" machine = "Motors"
...@@ -77,16 +117,16 @@ attribut = "Efficiency" ...@@ -77,16 +117,16 @@ attribut = "Efficiency"
data_pumps = data["Pumps"] data_pumps = data["Pumps"]
data_motors = data["Motors"] data_motors = data["Motors"]
dataset = pd.DataFrame() dataset = pd.DataFrame()
#pump_1 = data_pumps[0] # pump_1 = data_pumps[0]
# Iteration über Attribute einfügen # Iteration über Attribute einfügen
for i in range(0,len(data_pumps)): for i in range(0, len(data_pumps)):
attr_name = list(findkeys(data_pumps[i], "Name")) attr_name = list(findkeys(data_pumps[i], "Name"))
attr_value = list(findkeys(data_pumps[i], attribut)) attr_value = list(findkeys(data_pumps[i], attribut))
#attr_name, attr_value = find_attribut(data_pumps[i], attribut) # attr_name, attr_value = find_attribut(data_pumps[i], attribut)
#efficiency_pump) # efficiency_pump)
print("Die",machine,attr_name[0],"besitzt das Attribut",attribut, "mit dem Wert", attr_value[0]) print("Die", machine, attr_name[0], "besitzt das Attribut", attribut, "mit dem Wert", attr_value[0])
# multiplicate the pump efficiency with the motor efficiency # multiplicate the pump efficiency with the motor efficiency
...@@ -97,29 +137,23 @@ eta_pumpe_2 = list(findkeys(data["Pumps"][1], "Efficiency"))[0] ...@@ -97,29 +137,23 @@ eta_pumpe_2 = list(findkeys(data["Pumps"][1], "Efficiency"))[0]
count = 0 count = 0
#iteration over all pumps and motors # iteration over all pumps and motors
for p in range(0,len(data_pumps)): for p in range(0, len(data_pumps)):
for m in range(0,len(data_motors)): for m in range(0, len(data_motors)):
eta_pumpe=list(findkeys(data_pumps[p], attribut))[0]/100 eta_pumpe = list(findkeys(data_pumps[p], attribut))[0]/100
eta_motor=list(findkeys(data_motors[m], attribut))[0]/100 eta_motor = list(findkeys(data_motors[m], attribut))[0]/100
eta_ges = calculate_efficiency(eta_pumpe, eta_motor) eta_ges = calculate_efficiency(eta_pumpe, eta_motor)
scenario = "Szenario_" + str(count) scenario = "Szenario_" + str(count)
dataset[scenario] = [eta_pumpe,eta_motor,eta_ges] dataset[scenario] = [eta_pumpe, eta_motor, eta_ges]
dataset.index = ["eta_pumpe","eta_motor","eta_ges"] dataset.index = ["eta_pumpe", "eta_motor", "eta_ges"]
count +=1 count += 1
print(p,m,eta_ges) print(p, m, eta_ges)
#%% store dataframe in hdf5-file # %% store dataframe in hdf5-file
filename = "example_kpi.h5" filename = "example_kpi.h5"
with pd.HDFStore(filename, "a") as hdf: with pd.HDFStore(filename, "a") as hdf:
try: try:
dataset.to_hdf(hdf,"Berechnung") dataset.to_hdf(hdf, "Berechnung")
except ValueError: except ValueError:
print("Gruppe existiert bereits.") print("Gruppe existiert bereits.")
with h5.File(filename, "a") as hdf:
grp = hdf.get("Test")
grp_2 = hdf.get("Berechnung")
print(grp, grp_2)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment