Как записать значение с JSON файла в pytho

Имеется json файл

{
  "article": [
    {
      "a1": "60",
      "a2": "70",
      "a3": "95",
      "a4": "48",
      "a5": "30",
      "a6": "16",
      "a7": "74",
      "a8": "52",
      "a9": "36",
      "a10": "87",
      "a11": "110",
      "a12": "92",
      "a13": "66",
      "a14": "62",
      "a15": "65"
    }
  ]
}

Необходимо все значения(именно числа, а не "a1","a2"...) записать в массив. Самому не получилось решить задачу.

    def test(self):
        with open('test.json') as a:
            file_content = a.read()
            data = json.loads(file_content)
            data1 = data["article"]
            for i in data1:
                i = data[0][a + i]
                i = i + 1
                print(i)
        print(data1)

Ещё вопрос для моего продвижения в понимании кода, что обозначает подчёркнутый код? введите сюда описание изображения


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

Автор решения: Amgarak
import json

# Открываем файл 
with open('C:\\Users\\Amgarak\\Desktop\\myJson.json', 'r') as file:
    data = json.load(file)

# Забираем значения из словарей в списке словаря "article"
article_values = data['article'][0].values()
# dict_values(['60', '70', '95', '48', '30', '16', '74', '52', '36', '87', '110', '92', '66', '62', '65'])
# Теперь можно воспользоваться итерацией по полученным значениям
# Преобразуем строки в числа и записываем в массив
list_number = [int(value) for value in article_values]

print(list_number)

Вывод в консоль:

[60, 70, 95, 48, 30, 16, 74, 52, 36, 87, 110, 92, 66, 62, 65]

with open('test.json') as file: - мы открываем файл и получаем объект файла, который через ключевое слово as присваиваем переменной file.

a.read() - тут из названия функции всё очевидно, мы читаем полученные файл и возвращаем его в виде строк.

json.load(file) - так же читает полученные данные, но автоматически их конвертируем в объекты Python такие как словари, списки.

→ Ссылка
Автор решения: Namerek

В качестве варианта.
pip install jmespath

import jmespath as jp

data = {
    "article": [
        {
            "a1": "60",
            "a2": "70",
            "a3": "95",
            "a4": "48",
            "a5": "30",
            "a6": "16",
            "a7": "74",
            "a8": "52",
            "a9": "36",
            "a10": "87",
            "a11": "110",
            "a12": "92",
            "a13": "66",
            "a14": "62",
            "a15": "65"
        }
    ]
}

print(jp.search("article[*].*[]", data))
['60', '70', '95', '48', '30', '16', '74', '52', '36', '87', '110', '92', '66', '62', '65']
→ Ссылка