Как сделать инвентарь через json python?
День вожусь с показом инвентаря в дискорд боте. Мне нужно сделать так, чтобы вывелся предмет и его число. Например:
test x1
test1 x1
test2 x4
Но получается так:
[['test'], ['test1'], ['test2']] x[1, 1, 4]
Как сделать то, что мне нужно?
@bot.command(aliases=["inv", "инвентарь"])
async def inventory(ctx, member: discord.Member = None):
if member == None:
member = ctx.author
with open(f"{member.id}.json", "r") as write_file:
data = json.load(write_file)
invItem = data["item"]
invAmount = data["amount"]
embed = discord.Embed(title=f"Инвентарь {member}", description=f"Инвентарь:\n{invItem} x{invAmount}")
await ctx.send(embed=embed)
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
invItem, invAmount = [['test'], ['test1'], ['test2']], [1, 1, 4]
# я вот это имел ввиду ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# потому, что этот ответ верен для набора данных вот в таком формате
# Кроме того если количество элементов в списках invItem и invAmount будет разным,
# то лучше использовать zip_longest
items_str = '\n'.join(f'{ii} x{ia}' for (ii,), ia in zip(invItem, invAmount))
print(items_str)
test x1
test1 x1
test2 x4