Не получается получить переменную в JSON (PYTHON)
nicks.txt
{
"players": {
"name": "users",
"user_319990365": [
{
"id": 319990365,
"nick": "developer"
}
]
}
}
Как получить "nick"?
пытался сделать так... (извините, если очень коряво :D )
main.py
async def check_nick(id_member=319990365):
with open('nicks.txt') as json_file:
data = json.load(json_file)
for x in data['players']:
for y in x['user_{0}'.format(id_member)]:
return y
,но выскакивала ошибка:
TypeError: string indices must be integers
Ответы (1 шт):
Автор решения: mymedia
→ Ссылка
Цикл с итерацией по 'players' не нужен. Кроме того, не нужен async, потому что нету асинхронных операций. И да, безусловный return на первой же итерации второго цикла выглядел довольно странно — заменил на yield для примера.
def check_nick(id_member=319990365):
with open('nicks.txt') as json_file:
data = json.load(json_file)
for y in data['players']['user_{0}'.format(id_member)]:
yield y['nick']
Хм... но если немного подумать, кажется, у вас в исходных данных есть ошибка. Если 'players' был бы массивом в [], то тогда ваши исходные циклы сработали бы.