Разбор динамического файла Json с несколькими объектами и вставка в словарь в python - PullRequest
0 голосов
/ 29 декабря 2018

Мне нужно найти способ для анализа нескольких файлов JSON и вставки значений ключей в dict с ключами json в качестве переменных dict.главная проблема заключается в том, что json-объекты multy всегда различны, поэтому мне нужно найти динамический способ обработки нескольких объектов (так же, как несколько переменных в поле ввода, показанном ниже).Вот пример файла JSON:

{
   "ver":2,
   "inputs":[
      {
     "sequence":4294967295,
     "witness":"",
     "prev_out":{
        "spent":true,
        "spending_outpoints":[
           {
              "tx_index":400037372,
              "n":0
           }
        ],
        "tx_index":321333092,
        "type":0,
        "addr":"3BMEXa8wC24GWaQ9HzrWmDywdhwE7yNPjL",
        "value":510000000,
        "n":0,
        "script":"a91469f375b807f9052b0d9cb5b5c19698e7e2c77b0887"
     },
     "script":"0047..."
  }
   ],
   "weight":2428,
   "block_height":555269,
   "relayed_by":"127.0.0.1",
   "out":[
      {
     "spent":true,
     "spending_outpoints":[
        {
           "tx_index":400098206,
           "n":142
        }
     ],
     "tx_index":400037372,
     "type":0,
     "addr":"1AcLPK6EHL5r26Ee2kCEgMxL394T4vo6Lu",
     "value":200000000,
     "n":0,
     "script":"76a9146967df4b117a2c7ec36302493939dffc5176aa3d88ac"
  },
  {
     "spent":true,
     "spending_outpoints":[
        {
           "tx_index":400305587,
           "n":0
        }
     ],
     "tx_index":400037372,
     "type":0,
     "addr":"3BMEXa8wC24GWaQ9HzrWmDywdhwE7yNPjL",
     "value":309800000,
     "n":1,
     "script":"a91469f375b807f9052b0d9cb5b5c19698e7e2c77b0887"
  }
   ],
   "lock_time":0,
   "size":607,
   "double_spend":false,
   "block_index":1737822,
   "time":1545656997,
   "tx_index":400037372,
   "vin_sz":1,
   "hash":"c2155d02b743c09c51eb37c4f86392f9b1dec552c549ba8e217885cd69aee2fa",
   "vout_sz":2
}

Я уже пробовал это:

dic = {}
dic = OrderedDict()
    try:
        dic['ver'] = data['ver']
        for doc in data['inputs']:
            dic['in_sequence{}'.format(i)] = doc['sequence']
            dic['in_witness{}'.format(i)] = doc['witness']
            dic['in_spent{}'.format(i)] = doc['prev_out']['spent']

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

1 Ответ

0 голосов
/ 30 декабря 2018

Модуль json обрабатывает создание пар ключ-значение для вас.Попробуйте это:

import json

with open('data.json', 'r') as fp:
  d = json.load(fp)

, тогда словарь d содержит пары.Например, чтобы получить значение ключа 'ver':

print(d['ver']) # 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...