данные python — Json с разными ключами

#python #arrays #json #python-3.x

Вопрос:

Я пытаюсь сохранить два варианта запуска в Json. Моя попытка такова, как показано ниже. Является ли это разумным способом организации объекта Json? Кроме того, как я могу прочитать любой из них в кортежи? tuple([(item['opt_one'],item['val_one']) for item in config['opts']]) Я пытался, но получил ключевую ошибку. Большое спасибо за вашу помощь.

 "opts":[
    {
        "opt_one": "one_option",
        "val_one" : "value_one"
     },
     {
        "opt_two": "two_option",
        "val_two" : "value_two"
      }
      ]
 

Ответ №1:

 # or it can be done in 1 line
print(tuple(map(lambda v: tuple(v.values()), J['opts']))) 
 

Комментарии:

1. большое спасибо. Но как я могу также прочитать любой из них, например, только opt_two и val_two в кортеж?

2. opts — это список словарей. Каждый словарь имеет индекс (начинающийся с 0). В каждом словаре есть ключи() или значения() или оба — элемента(). J[‘opts’][0] и J[‘opts’][1] являются 2 словарями.

Ответ №2:

 import json

j = """
{"opts":[
    {
        "opt_one": "one_option",
        "val_one" : "value_one"
     },
     {
        "opt_two": "two_option",
        "val_two" : "value_two"
      }
    ]
}
"""
# note the braces around "opts"

J = json.loads(j) #turns it into a python object
print(J) #see!

# the long way to do it, but you can see the process
R = []
for item in J['opts']:
    r = []
    for v in item.values():
        r.append(v)
    R.append(tuple(r))

print(tuple(R)) # solution