0

ここでの私の計画は単純です。いくつかの情報を JSON ファイルに保存し、コードの後半で、JSON ファイルを調べて、以前に保存したすべての情報の中から 1 つのランダムな部分を探し、その後、特定の情報を削除する予定です。私が使ったもの。

次のコードを使用して、取得している情報をランダム化し、JSON ファイルから削除しようとしています。

sucesso = None
while sucesso is None:
    try:
        procurador = random.randint(1,10)
        idselecionado = datapass[procurador]
        sucesso = 1
    except:
        print("ainda procurando...")
        pass
del datapass[procurador]

JSON ファイルは、次のように非常に基本的なものです。

["1fFTHMtvoZHIcJQBK75MS22aM-UL5ucKx", "1PtINIlElccwKuN26gqdJmhA1CtctFO--", 
 "1sT_AjnNTtRCWsIkzC9SJc1L9XvwTqV7u", "19wnN_RoCQZZ5ykRy6DLxq6YNTkIwZV5s"]

これに関して重要なことがいくつかあります。

  • JSON ファイルの最初の 1 つを取得することは想定されていません。
  • 通常、JSON ファイルには 10 個以上の ID がありますが、ランダム ID が適切でない場合は while が再実行されるため、問題はないと思います。
  • コードは最初の部分 ( try) に入りますが、最後までは行かず、基本的に randint で停止します。次に、except から「ainda procurando...」を出力し、最後に適切に実行されずに閉じます。
4

1 に答える 1

0

JSONファイルがリスト型であると断言します。

json = []
def procedure(json):
    return json.pop(random.randint(1, len(json) - 1))

.pop() は、たとえば関数の結果に次のような名前を付けることで使用できる値を返します

result = procedure(json)
    

望ましいランダム値を返すだけでなく、そのリストから削除します。

#PS json[1:] は、random.choice がインデックス 1 の値のみを使用し、それ以下ではないことを意味します。

于 2021-03-15T18:33:16.657 に答える