擅长:python、mysql、java
<p>您不能以这种方式附加到JSON文件。我们首先必须确保<code>"blacklisted"</code>已经存在</p>
<p>我做了一个稍微不同的代码,但它的工作方式是相同的</p>
<p><strong>查看以下代码:</strong></p>
<pre class="lang-py prettyprint-override"><code>@blacklist.command(aliases=['member'])
async def user(self, ctx, *, user: typing.Union[discord.Member, discord.User]):
with open("jsons/blacklistj.json", "r") as f:
data = json.load(f)
print("Opened the JSON file.")
try:
data[str("Blacklist:")].append(str(user.id))
await ctx.send("Success, added new ID.")
except KeyError:
data[str("Blacklist:")] = [str(user.id)]
await ctx.send("Blacklist was created as there was no entry.")
with open("jsons/blacklistj.json", "w") as f:
json.dump(data, f)
</code></pre>
<ul>
<li>请注意,同一ID可以多次使用。然后您必须自己包含一段代码来检查<code>user.id</code>是否已经存在于JSON中</李>
<li>为了简化,您还可以将<code>user.id</code>定义为带有<code>id = str(user.id)</code>的<code>str</code>,然后在任何地方插入<code>id</code></李>
</ul>
<p><em>一个小提示:</em>您不必使用<code>str</code>,也可以只使用<code>user.id</code>,如您的示例所示</p>