Создать словарь(перемешиваются переменные)

data1 = [{'symbol': 'BTCUSDT', 'entryPrice': '61882.45623485', 'sizeX': '8000000000', 'createdAtE3': '1689871582278', 'side': 'Buy', 'leverageE2': '6500', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '81142.25995667', 'positionEntryPrice': '61882.45623485', 'positionCycleVersion': '19', 'crossSeq': '135737841670', 'closeFreeQtyX': '0', 'minPositionCostE8': '7884399193514', 'positionBalanceE8': '7884399193514'}, {'symbol': 'FILUSDT', 'entryPrice': '9.44926875', 'sizeX': '1000000000000', 'createdAtE3': '1689871582276', 'side': 'Buy', 'leverageE2': '1000', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '0', 'positionEntryPrice': '9.44926875', 'positionCycleVersion': '4', 'crossSeq': '97538062131', 'closeFreeQtyX': '0', 'minPositionCostE8': '949604263032', 'positionBalanceE8': '949604263032'}, {'symbol': 'SOLUSDT', 'entryPrice': '118.37367063', 'sizeX': '600000000000', 'createdAtE3': '1689871582281', 'side': 'Buy', 'leverageE2': '3000', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '107.83652277', 'positionEntryPrice': '118.37367063', 'positionCycleVersion': '3', 'crossSeq': '97538062125', 'closeFreeQtyX': '0', 'minPositionCostE8': '2405235323730', 'positionBalanceE8': '2405235323730'}, {'symbol': 'INJUSDT', 'entryPrice': '40.18660404', 'sizeX': '4000000000000', 'createdAtE3': '1689871582280', 'side': 'Buy', 'leverageE2': '833', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '40.62003427', 'positionEntryPrice': '40.18660404', 'positionCycleVersion': '9', 'crossSeq': '78436139101', 'closeFreeQtyX': '0', 'minPositionCostE8': '19375087031382', 'positionBalanceE8': '19375087031382'}, {'symbol': 'ARBUSDT', 'entryPrice': '2.02885465', 'sizeX': '20000000000000', 'createdAtE3': '1689871582279', 'side': 'Buy', 'leverageE2': '1429', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '2.04846658', 'positionEntryPrice': '2.02885465', 'positionCycleVersion': '7', 'crossSeq': '91538842182', 'closeFreeQtyX': '0', 'minPositionCostE8': '2860300792668', 'positionBalanceE8': '2860300792668'}, {'symbol': 'SUIUSDT', 'entryPrice': '1.62486774', 'sizeX': '40000000000000', 'createdAtE3': '1689871582276', 'side': 'Buy', 'leverageE2': '2000', 'isIsolated': False, 'transactTimeE3': '0', 'stopLossPrice': '', 'takeProfitPrice': '', 'takeProfitOrderId': '', 'stopLossOrderId': '', 'orderCostE8': '0', 'reCalcEntryPrice': '1.81603808', 'positionEntryPrice': '1.62486774', 'positionCycleVersion': '15', 'crossSeq': '100714070497', 'closeFreeQtyX': '0', 'minPositionCostE8': '3283695222714', 'positionBalanceE8': '5246404960224'}]
orders_dict = {}
for orders1 in data1:
    symbol = orders1['symbol']
    price = orders1['entryPrice']
    size = orders1['sizeX']
    side = orders1['side']
    orders_dict.update({symbol: {price, size, side}})
print(orders_dict)
#{'BTCUSDT': {'Buy', '61882.45623485', '8000000000'}, 'FILUSDT': {'1000000000000', 'Buy', '9.44926875'}, 'SOLUSDT': {'600000000000', 'Buy', '118.37367063'}, 'INJUSDT': {'4000000000000', '40.18660404', 'Buy'}, 'ARBUSDT': {'2.02885465', '20000000000000', 'Buy'}, 'SUIUSDT': {'40000000000000', '1.62486774', 'Buy'}}

При создании словаря перемешиваются переменные внутри, а должны иди по порядку {price, size, side}


Ответы (2 шт):

Автор решения: master_Alish

Очень просто! Если нужен порядок, то нужно использовать список.

Попробуй заменить строчку:

orders_dict.update({symbol: {price, size, side}})

на эту:

orders_dict.update({symbol: [price, size, side]})
→ Ссылка
Автор решения: sharlotka

{price, size, side} - это не словарь, это множество. У множества не бывает никакого порядка. Попробуй заменить множество на словарь - [price, size, side]. https://pythonworld.ru/tipy-dannyx-v-python/mnozhestva-set-i-frozenset.html и напоследок можешь посмотреть документацию о множестве, чтоб больше не делать ошибок. Надеюсь помог)

→ Ссылка