Discord.py辞書のランタイムエラー

ノベルティ

そのため、サーバー内のすべてのメンバーをループするボットを作成しようとしています。私はget_all_members()ジェネレーターを使用しています。

for member in client.get_all_members():
      userName = str(member.name)
      userGame = str(member.game)
      userID = str(member.id)
      print(userName, userGame, userID)
      await client.send_message(message.channel, "User " + userName + " 
      (<@" + userID + ">) is playing " + userGame)

実行時にランダムにこのエラーが発生しました:

File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 307, in _run_event 
    yield from getattr(self, event)(*args, **kwargs) 
File "C:\Users\Stefan\Source\Repos\AABot3\AABot3\AABot3.py", line 41, in on_message 
    for member in client.get_all_members(): 
File "C:\Program Files\Python36\lib\site-packages\discord\client.py", line 595, in get_all_members 
    for member in server.members: 
RuntimeError: dictionary changed size during iteration – 

このエラーを回避するにはどうすればよいですか?

パトリック・ハウ

get_all_membersループする前に、からリストを作成してみてください

for member in list(client.get_all_members()):
    ...

何が起こっているのかというと、Serverオブジェクト自分Memberのを辞書に保存ますあなたの場合はawaitコルーチンあなたが待っている間、あなたは、他のコルーチンを実行するために続けているの1許可Server日までにオブジェクトを。メンバーシップServerが変更されるたびに、辞書も変更されます。何かが変化するときにそれを繰り返すべきではないため、Pythonはこれを検出し、プログラムを終了します。

最初に値をリストに読み込むことで、辞書がいつ変更されたかに気付くことはありません。

最新バージョンでは、この動作が変更されています。これについては、ここで説明します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Discord.pyカスタムエラーを書き換える

分類Dev

discord.pyで例外(タイプエラー)を発生させるエラーハンドラー

分類Dev

ランダムリアクションゲームの作り方(discord.py)

分類Dev

Discord.pyリライトでカウンターボットを作成-割り当てエラーの前に参照されるローカル変数「counter」

分類Dev

Discord.py-ランダムなユーザーにタグを付ける

分類Dev

discord.pyプレフィックス変更コマンドのインデントエラー

分類Dev

discord.pyのdiscordサーバーからランダムなユーザーを取得します

分類Dev

on_command_error()イベントでのdiscord.py固有のエラーの処理

分類Dev

discord.pyのタイムスタンプを変更する

分類Dev

Discord.py | 未定義の変数 'ユーザー'エラー

分類Dev

Discord インストール時の依存関係エラー

分類Dev

Discord.py discord.NotFound exception

分類Dev

ランタイムエラーを修正する方法:実行中のイベントループを閉じることができません-Python Discord Bot

分類Dev

discord.pyの「name'server 'isnotdefined」エラーを修正する方法

分類Dev

discord.pyの歯車のローカライズ

分類Dev

Discord BotJSON解析エラー

分類Dev

Discord.py SSLCertVerificationError

分類Dev

Discord.py Massdm

分類Dev

Discord py get input

分類Dev

discord.pyのクライアントと歯車

分類Dev

jsonファイルからデータを辞書に保存する方法は?Discord.py

分類Dev

Discord Python Rewrite-ヘルプコマンドエラー(カスタム)

分類Dev

discord.pyのtyperacer

分類Dev

Discord.Py:CommandOnCooldownエラーイベントにクールダウンを追加します

分類Dev

discord.pyの辞書へのアクセス

分類Dev

このDiscord.pyリライト+リアクションライトコードで混乱-説明が必要

分類Dev

ページネーション-Discord.pyの書き換え

分類Dev

タイムスタンプ付きのdiscord.py埋め込みフッター

分類Dev

discord.py(パージコマンド)にエラーがあります

Related 関連記事

  1. 1

    Discord.pyカスタムエラーを書き換える

  2. 2

    discord.pyで例外(タイプエラー)を発生させるエラーハンドラー

  3. 3

    ランダムリアクションゲームの作り方(discord.py)

  4. 4

    Discord.pyリライトでカウンターボットを作成-割り当てエラーの前に参照されるローカル変数「counter」

  5. 5

    Discord.py-ランダムなユーザーにタグを付ける

  6. 6

    discord.pyプレフィックス変更コマンドのインデントエラー

  7. 7

    discord.pyのdiscordサーバーからランダムなユーザーを取得します

  8. 8

    on_command_error()イベントでのdiscord.py固有のエラーの処理

  9. 9

    discord.pyのタイムスタンプを変更する

  10. 10

    Discord.py | 未定義の変数 'ユーザー'エラー

  11. 11

    Discord インストール時の依存関係エラー

  12. 12

    Discord.py discord.NotFound exception

  13. 13

    ランタイムエラーを修正する方法:実行中のイベントループを閉じることができません-Python Discord Bot

  14. 14

    discord.pyの「name'server 'isnotdefined」エラーを修正する方法

  15. 15

    discord.pyの歯車のローカライズ

  16. 16

    Discord BotJSON解析エラー

  17. 17

    Discord.py SSLCertVerificationError

  18. 18

    Discord.py Massdm

  19. 19

    Discord py get input

  20. 20

    discord.pyのクライアントと歯車

  21. 21

    jsonファイルからデータを辞書に保存する方法は?Discord.py

  22. 22

    Discord Python Rewrite-ヘルプコマンドエラー(カスタム)

  23. 23

    discord.pyのtyperacer

  24. 24

    Discord.Py:CommandOnCooldownエラーイベントにクールダウンを追加します

  25. 25

    discord.pyの辞書へのアクセス

  26. 26

    このDiscord.pyリライト+リアクションライトコードで混乱-説明が必要

  27. 27

    ページネーション-Discord.pyの書き換え

  28. 28

    タイムスタンプ付きのdiscord.py埋め込みフッター

  29. 29

    discord.py(パージコマンド)にエラーがあります

ホットタグ

アーカイブ