API, от которого мне приходит ответ в таком виде:
{rack1: {'data': {'server': {'servername1': {'state': 'OK'}}}}}}
.........
{rack7: {'data': {'server': {'servername1': {'state': 'OK'}}}}}}
Как пройтись циклом по всем rack и получить все state?
Там где servername1, он не один там внутри словаря их много.
for rack_name, rack_data in data.items(): for server_name, server_data in rack_data['data']['server'].items(): ....
А без вложенного цикло это никак не сделтаь ?
и чем тебя вложенный цикл не устроил то?
Ну у меня получается внутри вложенного цикла еще будет вызываться функция insert в базу
проблема конечно же во вложенном цикле
1. делай insert батчами 2. делай несколько инсертов в одной транзакции.
у меня что-то не получилось сделать как ты описал, у меня получилось вот так: def insert_db_data(): data = get_slush_pool_data() for x in data: for b in data[x]['btc']['workers']: insert(b, data[x]['btc']['workers'][b]['state'], data[x]['btc']['workers'][b]['last_share'], data[x]['btc']['workers'][b]['hash_rate_unit'], data[x]['btc']['workers'][b]['hash_rate_scoring'], data[x]['btc']['workers'][b]['hash_rate_5m'], data[x]['btc']['workers'][b]['hash_rate_60m'], data[x]['btc']['workers'][b]['hash_rate_24h'], sql_query="INSERT INTO slushpool.workers(worker, state, last_share, hash_rate_unit, " "hash_rate_scoring, hash_rate_5m, hash_rate_60m, hash_rate_24h) VALUES(" "%s, %s, " "%s, %s, %s, %s, %s, %s) RETURNING " " id;")
Обсуждают сегодня