Как сделать список словарей из существующего после операций форматирования?Python

Программы на Python
Anonymous
Как сделать список словарей из существующего после операций форматирования?

Сообщение Anonymous »

У меня есть список словарей, которые я хочу обработать, чтобы он соответствовал формату dict influxDB:

Код: Выделить всё

dict={
"measurement": 'measurement_name",
"tags" : {"tag_key":"tag_value"},
"fields : {"field_name" : field_value}
}
мой список диктовок:

Код: Выделить всё

list_val_machines=[
{"machine1_Data_variable1": value,
"machine1_Data_variable2" : value},
{"machine2_Data_variable1": value,
"machine1_Data_variable2" : value}
]
Итак, вот что я пробовал:

Код: Выделить всё

for k,v in enumerate(list_val_machines): #loop on list items
   
    for i,j in v.items(): #iterate on every key value of each dict
        #list_machine_names=[]
        #for k,v in raw_data_dict.items():
        #list_machine_names.append(machine_name)
machine_name=i.split('_')[0] #parse machine name
        variable_names=list(v.keys()) #get variable names (tag keys)
        values_name=list(v.values()) #get values (field values)
        for l,m in enumerate(variable_names):
            for n,o in enumerate(values_name):
                d={
                "measurement" : machine_name,
                "tags" : {"variable_name": m},
                "fields" : {"variable_name": o}    
                }
        list_d.append(d)
data=list_d

data variable looks like this:
for p in data:
print(p)

output:

{'measurement': 'machine1', 'tags': {'variable_name': 'machine1_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine1', 'tags': {'variable_name': 'machine1_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine1', 'tags': {'variable_name': 'machine1_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine1', 'tags': {'variable_name': 'machine1_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine2', 'tags': {'variable_name': 'machine2_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine2', 'tags': {'variable_name': 'machine2_Data_variable1'}, 'fields': {'variable_name': 0.0}}
{'measurement': 'machine2', 'tags': {'variable_name': 'machine2_Data_variable1'}, 'fields': {'variable_name': 0.0}}
Имя измерения правильное, но у меня одно и то же поле тега для каждой машины (пример: машина1_Data_variable1) и одно и то же значение поля для каждой переменной на данной машине. Я не понимаю, что здесь происходит не так. Я хочу иметь 1 словарь для каждой переменной с правильными именами и значениями переменных.
Есть какие-нибудь подсказки о том, как этого добиться?
упомянутое выше, что я попробовал

Подробнее здесь: https://stackoverflow.com/questions/790 ... -operation

Вернуться в «Python»