Извините, я новичок в 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)
@MarkMeyer, надеюсь, это должно сделать, но, к сожалению, мы даже не знаем этого наверняка, поскольку не видим, как OP читает файл. Может не анализироваться, это может быть строка.
Я полагаю, вы правы, @JaredSmith. Я сделал предположение, что файл json просто анализируется как json.
Возможно, выходит за рамки вопросов, хотел сообщить ОП о json.loads() из json библиотеки, если он об этом не знает. Я считаю, что это самый простой способ загрузки файлов json.
JSON в питоне — это просто словарь. Если вы прочитали файл и он такой же, как тот, который вы упомянули, то, как сказал @MarkMeyer, вам нужно получить к нему доступ с помощью config_values['keyArrayOfImportantVal'].
Если вы хотите перебрать все keys один за другим, вы можете сделать это с помощью for key in config_values.keys()
Питер: Просто сказать: «Я делаю что-то не так» недостаточно. Пожалуйста, отредактируйте свой вопрос и добавьте сообщение об ошибке, которое вы получаете, а также код для функции read_config_file().
@Mr.Hobo Нет, JSON — это кодировка, а объект JSON обычно (но не обязательно) декодируется как dict.
@chepner: «Нет», что именно?
@martineau, извини, я нажал на вкладку и не заметил, что она дописана до твоего ника, а не до мистера Бродяги.
этот комментарий относится к администратору stackoverflow: как вы можете говорить, что я не предоставил достаточно отладочной информации? Звзиад ответил на это. Я определил входной файл. Я сказал, что могу прочитать файл в переменную. Я спросил, как мне перебирать переменную, в которую считывается объект JSON. Хорошо, я не помещал сообщения об ошибках в то, что, по моему мнению, должно работать. Но было так очевидно, что синтаксис был совершенно неправильным.
@petercooke это был не администратор, это сообщество проголосовало за закрытие. И тот факт, что кто-то угадал правильно, не означает, что в вопросе достаточно подробностей, как я указал Марку Мейеру в предыдущем комментарии.






вы можете прочитать, как правильно читать файл 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)
config_values — это словарь, поэтому индексировать нужно скобками, а не точкой:
config_values['keyArrayOfImportantVal'].