Как перебирать список python - PullRequest
0 голосов
/ 16 июня 2020

у меня есть файл вроде этого:

{"user1": {"Login": "Bob", "Secret": "passkey1"}}
{"user2": {"Login": "John", "Secret": "passkey2"}}

with open('users') as data_file:    
   data = [json.loads(line) for line in data_file]

Как я могу выполнить итерацию на user1,2 et c, чтобы получить «Секрет»? Пользователи просто пример

Ответы [ 3 ]

2 голосов
/ 16 июня 2020

Вы можете попробовать использовать следующее:

import json

{"user1": {"Login": "Bob", "Secret": "passkey1"}}
{"user2": {"Login": "John", "Secret": "passkey2"}}

with open('users.txt') as data_file:    
    data = [json.loads(line) for line in data_file]

for line in data:
    print(line.get(list(line.keys())[0]).get("Secret"))

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

2 голосов
/ 16 июня 2020
with open('users.txt') as data_file:    
   data = [list(json.loads(line).values())[0]['Secret'] for line in data_file]
print(data)
['passkey1', 'passkey2']

Вот как выглядел мой файл

{"user1": {"Login": "Bob", "Secret": "passkey1"}}
{"user2": {"Login": "John", "Secret": "passkey2"}}
1 голос
/ 16 июня 2020

Вы можете попробовать

with open('users') as data_file:    
  for line in data_file:
      for k, v in json.loads(line).items():
          print(v['Secret'])

Вывод

passkey1
passkey2

Этот код создаст для каждой строки словарь, а затем вы можете извлечь значение «Секрет» из каждой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...