Как перебрать объект JSON?

Извините, я новичок в Python из-за фона Java. Я что-то делаю не так и не могу найти в гугле.

У меня есть config_file.json:

{
   key1: val1,
   key2: val2,
   keyArrayOfImportantVal : [ "str1", "str2", "str3"]
}

Я могу читать в своем файле json и создавать переменную, которая сопоставляется с моим файлом json.

config_values = read_config_file('path to file') 
#config_values has json as I expect 

Мне нужно перебрать значения в keyArrayOfImportantVal. Я просто не нахожу, что мне нужно для этого.

Я думал, что это должно работать, но это не так.

for val in config_values.keyArrayOfImportantVal:
    print (val)

и не

importantVals = _config_values.keyArrayOfImportantVal
for val in imporantVals:
    prit(val)

config_values ​​— это словарь, поэтому индексировать нужно скобками, а не точкой: config_values['keyArrayOfImportantVal'].

Mark 23.12.2020 20:17

@MarkMeyer, надеюсь, это должно сделать, но, к сожалению, мы даже не знаем этого наверняка, поскольку не видим, как OP читает файл. Может не анализироваться, это может быть строка.

Jared Smith 23.12.2020 20:18

Я полагаю, вы правы, @JaredSmith. Я сделал предположение, что файл json просто анализируется как json.

Mark 23.12.2020 20:19

Возможно, выходит за рамки вопросов, хотел сообщить ОП о json.loads() из json библиотеки, если он об этом не знает. Я считаю, что это самый простой способ загрузки файлов json.

itaishz 23.12.2020 20:21
JSON в питоне — это просто словарь. Если вы прочитали файл и он такой же, как тот, который вы упомянули, то, как сказал @MarkMeyer, вам нужно получить к нему доступ с помощью config_values['keyArrayOfImportantVal'].
Mr. Hobo 23.12.2020 20:23

Если вы хотите перебрать все keys один за другим, вы можете сделать это с помощью for key in config_values.keys()

Mr. Hobo 23.12.2020 20:24

Питер: Просто сказать: «Я делаю что-то не так» недостаточно. Пожалуйста, отредактируйте свой вопрос и добавьте сообщение об ошибке, которое вы получаете, а также код для функции read_config_file().

martineau 23.12.2020 20:27

@Mr.Hobo Нет, JSON — это кодировка, а объект JSON обычно (но не обязательно) декодируется как dict.

chepner 23.12.2020 20:29

@chepner: «Нет», что именно?

martineau 23.12.2020 20:30

@martineau, извини, я нажал на вкладку и не заметил, что она дописана до твоего ника, а не до мистера Бродяги.

chepner 23.12.2020 20:33

этот комментарий относится к администратору stackoverflow: как вы можете говорить, что я не предоставил достаточно отладочной информации? Звзиад ответил на это. Я определил входной файл. Я сказал, что могу прочитать файл в переменную. Я спросил, как мне перебирать переменную, в которую считывается объект JSON. Хорошо, я не помещал сообщения об ошибках в то, что, по моему мнению, должно работать. Но было так очевидно, что синтаксис был совершенно неправильным.

peter cooke 24.12.2020 21:54

@petercooke это был не администратор, это сообщество проголосовало за закрытие. И тот факт, что кто-то угадал правильно, не означает, что в вопросе достаточно подробностей, как я указал Марку Мейеру в предыдущем комментарии.

Jared Smith 26.12.2020 22:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
12
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете прочитать, как правильно читать файл json здесь Чтение и запись JSON в файл в Python или вы можете использовать этот фрагмент, если он поможет

import json

with open('path to file') as json_file:
    data = json.load(json_file)

это будет повторять все ключи

for x in data:
    print(x)

это будет повторять значения в этом ключе "keyArrayOfImportantVal"

for x in data['keyArrayOfImportantVal']:
    print(x)

Другие вопросы по теме