json 저장 코드를 2개를 넣으면 꼬입니다.
조회수 740회
Python에서 디스코드 봇을 만들고 있습니다.
임시적으로 json 2개에 데이터를 저장하고 있습니다. 하지만, json 2개를 저장하려 하니, 한 json의 데이터가 다른 json 파일에도 똑같이 저장됩니다.
이유를 모르겠어서 질문해봅니다.
코드 :
@bot.command()
async def 매입(message,money=None):
await open_account(message.channel.id,message.guild.owner_id)
users = await get_bank_data()
await open_user_account(message.author)
userss = await get_user_data()
userss[str(message.author.id)]["money"] -= int(money)
users[str(message.channel.id)]["channel_sy"] = message.author.id
users[str(message.channel.id)]["channel_m"] = int(money)
with open('D:/Fishing_Bot/fishuser.json','w') as f:
json.dump(users,f, indent=2)
with open('D:/Fishing_Bot/fishmap.json','w') as f:
json.dump(users,f, indent=2)
# json
async def open_account(chnname,user):
users = await get_bank_data()
if str(chnname) in users:
return False
else:
users[str(chnname)] = {}
users[str(chnname)]["channel_id"] = chnname
users[str(chnname)]["channel_ji"] = random.choice(ji_roll)
users[str(chnname)]["channel_ms"] = 0
users[str(chnname)]["channel_m"] = 10000
users[str(chnname)]["channel_sy"] = user
users[str(chnname)]["channel_ssl"] = 3
users[str(chnname)]["channel_ygb"] = 0
with open("D:/Fishing_Bot/fishmap.json", "w", encoding='UTF-8') as f:
users = json.dump(users, f, indent=2)
return True
async def get_bank_data():
with open("D:/Fishing_Bot/fishmap.json", encoding='UTF-8') as f:
users = json.load(f)
return users
async def open_user_account(user):
userss = await get_user_data()
if str(user.id) in userss:
return False
else:
userss[str(user.id)] = {}
userss[str(user.id)]["money"] = 0
with open("D:/Fishing_Bot/fishuser.json", "w", encoding='UTF-8') as f:
users = json.dump(userss, f, indent=2)
return True
async def get_user_data():
with open("D:/Fishing_Bot/fishuser.json", encoding='UTF-8') as f:
userss = json.load(f)
return userss
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력