前提・実現したいこと
Discord.py(rewrite版)を使ってDiscordのメモ帳くんBOTを作成しています。
送信されたスペース、改行を含むメッセージをそのまま変数に代入したいです。メッセージを送信する際にダブルコーテーションで囲うことはしたくありません。
今の所の妥協の仕様としては、改行、スペースを含む場合はダブルコーテーションで囲って送信するようにしています。
今まで一般公開されていたメモ帳くんBOTの仕様がスペース等もそのまま取り込むものだったため、同じ使用感で扱えるようにしたいです。
該当のソースコード
該当コマンド以外は省略しています。
Python
1#coding:utf-8 2 3import asyncio 4import json 5import random 6 7import discord 8from discord.ext import commands 9 10client = discord.Client() 11 12ACCESS_TOKEN = '********' 13bot = commands.Bot(command_prefix='!') 14 15@bot.command(name = 'madd') 16async def madd(ctx, title, memo): #問題の引数 17 imjson = openJSON() 18 userid = str(ctx.author.id) 19 if not userid in imjson: 20 tmpdict = {title : memo} 21 imjson.setdefault(userid, tmpdict) 22 else: 23 imjson[userid][title]= memo 24 writeJSON(imjson) 25 await ctx.send(ctx.author.name + "の" + title + "にメモを登録しました。") 26 27def openJSON(): 28 f = open(r'.\memo.json',encoding="utf-8") 29 returnObj = json.load(f) 30 f.close() 31 return returnObj 32 33def writeJSON(wdic): 34 f = open(r'.\memo.json',encoding="utf-8", mode="w") 35 json.dump(wdic, f,ensure_ascii=False) 36 f.close() 37 38 39bot.run(ACCESS_TOKEN) 40 41
試したこと
async def madd()の引数に**argument、*argは試してみましたが、
どちらも区切り文字として認識されてしまい、後から展開したときには詰まってしまいます。
補足情報(FW/ツールのバージョンなど)
Windows 10
Visual Studio Code 1.33.1
Python 3.6.8
discord.py 1.0.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。