Согласны ли вы, что вы говорите о словарях в списке?
Если я понимаю, вы хотите иметь индекс для доступа, как это:
tab = [{ "value": "hello", "name": "janedoe", "istrue": "yes", "number": 5 }]
% Doesn't work
print(tab[0][0]) // You would like "hello"
Однако, если вы знаете, что вам просто нужны «значение», «имя» или что-то еще, вы можете получить доступ следующим образом:
tab = [{ "value": "hello", "name": "janedoe", "istrue": "yes", "number": 5 }]
# Display "hello"
print(tab[0]["value"])
Вы можете использовать цикл, как вы, и получать поля, которые вы хотите.
Это то, что вы хотите?
EDIT:
Это новый код для того, что вы хотите:
def index_containing_substring(list_dic, substring):
for i, s in enumerate(json_list):
for key in s:
if substring in s[key]:
# If you don't want the value remove s[key]
return i, key, s[key]
return -1
json_list = [
{ "value": "hello", "name": "janedoe", "istrue": "yes", "number": 5 },
{ "value": "hello", "name": "pop", "istrue": "yes", "number": 5 }
]
substring = 'doe'
# display: (0, 'name', 'janedoe')
print(index_containing_substring(json_list, substring))
Я немного изменил, но функция возвращает индекс таблицы, и какой ключ содержит 'doe'.
Заметьте в коде, что вы просто возвращаете первый элемент, в котором вы найдете «doe», а не все элементы.
Но это не сложно обобщить, если вы хотите получить все результаты.