Задать вопрос
fluttershy174
@fluttershy174
Сисадмин и Фотограф

Как создать json список со вложенными словарями в python?

Добрый день! пытаюсь найти материал по многоуровневым запутанным спискам, но сгенерировать пока не получилось.
Суть задачки сгенерировать список
Список JSON

{
    "form_id": 1345,
    "fields": [
      {
        "id": 1,
        "value": "IT conference in Amsterdam"
      },
      {
        "id": 2,
        "value": 10306.25
      },
      {
        "id": 3,
        "value": {
          "item_id": 845
        }
      },
      {
        "id": 4,
        "value": [
          {
            "row_id": 0,
            "cells": [
              {
                "id": 6,
                "value": "2017-08-26"
              },
              {
                "id": 9,
                "value": 10000
              }
            ]
          }
        ]
      }
    ]
  }


Пробовал использовать и обьеденять конструкции на подобие
spoiler

c_form_id = 1391696
c_form_resp_name = "Pavel"
c_form_resp_name2 = "Perk"
p_form_id = {"form_id":c_form_id}
p_form_resp = {"id":23, "value":{"first_name":c_form_resp_name, "last_name":c_form_resp_name2}}


Но добиться нужного результата не получилось
Есть ли возможность в python прописать длинный многоуровневый список со словарями и вставлять туда переменные чтобы по итогу я мог сгенерировать из него JSON?
Рассматривал возможность сделать текстовый документ с нужным json и реплейсить в нем переменные - но это очень громоздкое решение
  • Вопрос задан
  • 184 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
Есть ли возможность в python прописать длинный многоуровневый список со словарями и вставлять туда переменные чтобы по итогу я мог сгенерировать из него JSON?

1. Вначале формируете словарь (или любые другие типы данных) со всеми необходимыми свойствами.
2. Преобразуете п1. в json методом json.dumps().
import json

krevetko = 'иа креветкО!'

data = {
    "form_id": 1345,
    "fields": [
        {"id": 1, "value": krevetko},  # <-- this is, krevetko variable
        {"id": 2, "value": 10306.25},
        {"id": 3, "value": {"item_id": 845}},
        {
            "id": 4,
            "value": [
                {
                    "row_id": 0,
                    "cells": [
                        {"id": 6, "value": "2017-08-26"},
                        {"id": 9, "value": 10000}
                    ]
                }
            ]
        }
    ]
}

print(json.dumps(data))

# {"form_id": 1345, "fields": [{"id": 1, "value": "\u0438\u0430 \u043a\u0440\u0435\u0432\u0435\u0442\u043a\u041e!"}, {"id": 2, "value": 10306.25}, {"id": 3, "value": {"item_id": 845}}, {"id": 4, "value": [{"row_id": 0, "cells": [{"id": 6, "value": "2017-08-26"}, {"id": 9, "value": 10000}]}]}]}

Больше примеров:
import json

data_dict = {"name": "John", "age": 30}
data_list = [1, 2, 3, 4]
data_string = "Hello, world!"
data_string_cyrillic = "иа креветкО!"
data_number = 42
data_boolean = True
data_none = None

print(json.dumps(data_dict))  # {"name": "John", "age": 30}
print(json.dumps(data_list))  # [1, 2, 3, 4]
print(json.dumps(data_string))  # "Hello, world!"
print(json.dumps(data_string_cyrillic))  # "\u0438\u0430 \u043a\u0440\u0435\u0432\u0435\u0442\u043a\u041e!"
print(json.dumps(data_number))  # 42
print(json.dumps(data_boolean))  # true
print(json.dumps(data_none))  # null
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы