Как извлечь данные из словаря? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь получить поля активов / свободных / заблокированных вместе с соответствующими данными для заполнения в столбцах. В настоящее время я могу получить только столбец балансов, в который попадают эти поля.

Вот формат данных. Мне до "остатков" ничего не нужно. Думаете, я могу удалить эту часть строки, может быть, тогда будут созданы столбцы? Или, если есть другой способ сделать это?

'{'makerCommission': 10, 'takerCommission': 10, 'buyerCommission': 0, 'sellerCommission': 0, 'canTrade': True, 'canWithdraw': True, 'canDeposit': True, 'updateTime': 1595872633345, 'accountType': 'MARGIN', 'balances': [{'asset': 'BTC', 'free': '0.00000000', 'locked': '0.00000000'}, {'asset': 'LTC', 'free': '0.00000000', 'locked': '0.00000000'}, {'asset': 'ETH', 'free': '0.00000000', 'locked': '0.00000000'}...'

Код для получения остатков:

account = client.get_account()

assets = pd.DataFrame(account, columns = ['balances'])

Любая помощь приветствуется. Поставил меня в тупик.

1 Ответ

2 голосов
/ 03 августа 2020
  • Если account - это string, он должен быть преобразован в dict с ast.literal_eval.
  • С account как dict используйте pandas.json_normalize, чтобы извлечь вложенные keys и values
from ast import literal_eval
import pandas as pd

# if account is a string
assets = pd.json_normalize(literal_eval(account), 'balances')

# if account is a dict
assets = pd.json_normalize(account, 'balances')

# display(assets)
  asset        free      locked
0   BTC  0.00000000  0.00000000
1   LTC  0.00000000  0.00000000
2   ETH  0.00000000  0.00000000

образцы данных как str

data = "{'makerCommission': 10, 'takerCommission': 10, 'buyerCommission': 0, 'sellerCommission': 0, 'canTrade': True, 'canWithdraw': True, 'canDeposit': True, 'updateTime': 1595872633345, 'accountType': 'MARGIN', 'balances': [{'asset': 'BTC', 'free': '0.00000000', 'locked': '0.00000000'}, {'asset': 'LTC', 'free': '0.00000000', 'locked': '0.00000000'}, {'asset': 'ETH', 'free': '0.00000000', 'locked': '0.00000000'}]}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...