• Как делать перекрестное сравнение?

    @dmshar
    Напоминаю, в словаре ключи не упорядочены.
    Ваш elem - это список, первый и единственный элемент которого при первом проходе цикла равен [{'key1': 'KARA', 'key2': '10'}]. Идем дальше. elem[0] - это уже словарь {'key1': 'KARA', 'key2': '10'}. У которого не может быть элемента elem[0][0]. Вот и получаете заслуженную ошибку.
    Аналогичный анализ для json2 надеюсь вам самостоятельно провести труда не составит.
    Все это прекрасно видно в менеджере переменных, умение пользоваться которым - один из основных навыков при проведении отладки любой программы.
    Совет выучить структуры Python перед тем как писать программы с ними - вам коллеги уже дали раньше. На постоянных подсказках - программирование не выучить.
    Ответ написан
    Комментировать
  • Как взять из массива все значения ключа?

    Vindicar
    @Vindicar
    RTFM!
    У тебя всегда в верхнем уровне массива один элемент?
    Ну так просто перебирай элементы в mas[0]['d']['x'].
    Если не всегда, то используй тот же цикл по z.
    Ответ написан
    Комментировать
  • Как взять из массива все значения ключа?

    Revencu
    @Revencu
    создать рекурсивную функцию на каждый найденный ключ с проверкой типа значения
    if isinstance(element, dict)
    Ответ написан
    Комментировать
  • Как удалить символ из словаря?

    Vindicar
    @Vindicar
    RTFM!
    Включить голову и выучить уже стандартные структуры данных Питона.
    Вот кроме шуток
    Для начала, у тебя не словарь, а список словарей с разнообразными структурами данных внутри.
    А твой код пытается работать с этой структурой, как будто это список строк. Вот с чего ты взял, что это вообще сработает? Да ещё и используя регулярные выражения. Взял, что первой строкой в гугле попалось?


    Теперь скажи, в контексте вышесказанного - что значит "удалить символ подчеркивания"? Удалить откуда?
    Я предполагаю, что из значений в словарях внутри списка в ключе data для каждого словаря в твоем списке?
    Ну вот собственно эту фразу достаточно перевести на питон (от конца к началу), чтобы получить ответ.
    # этот код изменит твой массив "на месте", а не создаст изменённую копию!
    for mas_item in mas: # для каждого словаря в твоем списке
        for data_dict in mas_item['data']: # для каждого словаря в списке по ключу data 
            # словари не любят, когда их модифицируют и проходятся по ним for'ом одновременно
            data_dict_keys = list(data_dict.keys()) # так что заранее составляем список ключей словаря
            for key in data_dict_keys: # проходимся по этим ключам
                data_dict[key] = data_dict[key].replace('_', '') # и обрабатываем значения по этим ключам

    Как-то так. Чем тебе это подчеркивание помешало, без понятия.
    Ответ написан
    1 комментарий
  • Как добавить элементы в json файлы (python)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Очевидно, нужно сформировать список словарей и сохранить его один раз, а не сохранять словарь на каждой итерации.
    Ответ написан
    3 комментария