f
является объектный файл, который представляет собой итератор-подобный объект, который означает, что когда вы итерацию над ней вы потребляли его и вы не можете использовать его снова. И в этом случае вы потребляете его первым в следующей строке:
print(f.read())
Также для загрузки файла JSON вы должны использовать json.load()
функцию. После этого вы можете сохранить содержимое после прочтения затем искать хотя сохранившееся содержание:
with open("first.json") as f
content = json.load(f)
username = [index["username"] for index in content]
print(username)
Также в качестве функциональной основы подхода, можно использовать operator.itemgetter
и map()
для того, чтобы получить итератор содержит все имена пользователей (которые более оптимизированные с точки зрения использования памяти):
from operator import itemgetter
with open("first.json") as f
content = json.load(f)
usernames = map(itemgetter("username"), content)
Спасибо, сейчас работает :) –