Python関数コードの出力が間違っている

アーネンエルベ

私が持っているrootFile = root.jsonコンテンツがあるファイルを

{
  "tests":[
    {
      "test":"test1",
      "url":"url1"
    },
    {
      "test":"test2",
      "url":"url2"
    },
    {
      "test":"test3",
      "url":"url3"
    }
  ]
}

そして私は実行する文字列パラメータを与えているPython関数を持っています

def check(params):
    runId=time.strftime("%Y%m%d-%H%M%S")
        outputFile=Path(""+runId+".txt")
    with open (rootFile) as rj:
        data=json.load(rj)
    for param in params:
        for t in data['tests']:
            if t['test'] == param:
                urlToUse=t['url']
                testrun(param, urlToUse, runId)
            else:
                nonExistingTest="Test "+param+" Doesn't exist \n"
                if not outputFile.exists():
                    with open(outputFile,"a") as noSuchTest:
                        noSuchTest.write("Test "+param+" Doesn't exist \n")
                elif not nonExistingTest in open(outputFile).read():
                    with open(outputFile,"a") as noSuchTest:
                        noSuchTest.write("Test "+param+" Doesn't exist \n")
    with open(outputFile,"r") as pf:
        message=pf.read()
        slackResponse(message)

私のパラメータがroot.jsonファイルに存在する「test1test2test3」の場合、そのような応答があります

Test test1 passed #this response comes from testrun() function
Test test1 Doesn't exist

Test test2 Doesn't exist
Test test2 passed  #this response comes from testrun() function

Test test3 Doesn't exist
Test test3 passed  #this response comes from testrun() function

しかし、存在しないパラメータを指定すると、出力は正しくなります。例えば

Test test4 Doesn't exist
Test test5 Doesn't exist
Test test6 Doesn't exist
Test test7 Doesn't exist

実際に存在するのに、なぜ送信が存在しないのか理解できません

J.カッツヴィンケル

関数呼び出しで渡された各パラメーターtestsを、jsonファイルからロードされ配列のすべての項目と比較し、同等性について対応するテストを開始し、そのようなテストは他の方法では存在しないことを示すメッセージをエコーし​​ます。この比較では、パラメーターごとに1回だけ肯定的な結果が得られますがroot.json、各パラメーターに指定されたテストがある回数だけチェックされるため、特定のパラメーターが一致しないことを示す行が出力に多数表示されます。で指定された特定のテストroot.json

root.json現在のパラメータでアドレス指定されているエントリを見つけたら、ループを終了する方法が必要になります。私はに割り当てられたデータ構造の変更のいずれかをお勧めしたいtestsroot.json値としてキーとそのURLなどのテスト名で、オブジェクトへの配列から、または何らかの形であなたが現在のパラメータを比較している可能性テストのリストをフィルタリングします。

内部のすべてをfor param in params:次のように変更することを検討してください

matching_tests = [t for t in data['tests'] if t['test'] == param]
if len(matching_tests) > 0:
    for t in matching_tests:
        urlToUse=t['url']
        testrun(param, urlToUse, runId)
else:
    nonExistingTest="Test "+param+" Doesn't exist \n"
    [...]

そうすれば、特定のパラメーターに一致するテストがないというメッセージは、最大で1回だけエコーされます。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonコードの出力が間違っている

分類Dev

NTILE関数、レコード数が間違っています

分類Dev

コードが正しい場合でも、出力文字配列コードの格納が間違っている

分類Dev

and演算子を使用した関数の累積でコードが間違っている理由

分類Dev

PythonCaesar関数の出力が間違っています

分類Dev

箱ひげ図のレコード数が間違っている

分類Dev

このPythonコードのどこが間違っているのですか?

分類Dev

次のPythonコードが間違っているのはなぜですか?

分類Dev

単体テスト出力のエンコードが間違っています

分類Dev

SOSEXmdtコマンドの出力が間違っています

分類Dev

jsコードの構造が間違っている

分類Dev

なぜこれは次のコードの出力がGO言語で間違っているのですか?

分類Dev

R関数が間違っている

分類Dev

テール コマンド - fseek() と getline() を使用 - 出力の順序が間違っている

分類Dev

クラス関数は出力は正しいがメソッドが間違っている

分類Dev

関数を子コンポーネントに渡す、「this」のコンテキストが間違っている

分類Dev

Laragon v.2.2.2 の Mail() 関数 - 送信後のエンコーディングが間違っている

分類Dev

Pythonのraw_input、出力が間違っている

分類Dev

Python文字列ループの出力が間違っています

分類Dev

memove()関数のC言語の出力が間違っていますか?

分類Dev

フロートの比較で出力が間違っている

分類Dev

Python関数型プログラミング、スコープ、変数。どこが間違っているのですか?

分類Dev

関数で何が間違っているのですか?

分類Dev

Java | 関数からの戻りが間違っている

分類Dev

conv2d関数後の出力サイズが間違っています

分類Dev

与えられたコマンドが間違っているのになぜ関数フォークを開くのですか?

分類Dev

Pythonで呼び出される関数のバージョンが間違っています

分類Dev

次のコードが間違っているのはなぜですか?二項係数

分類Dev

予期しない出力ですが、コードは間違っていません

Related 関連記事

  1. 1

    Pythonコードの出力が間違っている

  2. 2

    NTILE関数、レコード数が間違っています

  3. 3

    コードが正しい場合でも、出力文字配列コードの格納が間違っている

  4. 4

    and演算子を使用した関数の累積でコードが間違っている理由

  5. 5

    PythonCaesar関数の出力が間違っています

  6. 6

    箱ひげ図のレコード数が間違っている

  7. 7

    このPythonコードのどこが間違っているのですか?

  8. 8

    次のPythonコードが間違っているのはなぜですか?

  9. 9

    単体テスト出力のエンコードが間違っています

  10. 10

    SOSEXmdtコマンドの出力が間違っています

  11. 11

    jsコードの構造が間違っている

  12. 12

    なぜこれは次のコードの出力がGO言語で間違っているのですか?

  13. 13

    R関数が間違っている

  14. 14

    テール コマンド - fseek() と getline() を使用 - 出力の順序が間違っている

  15. 15

    クラス関数は出力は正しいがメソッドが間違っている

  16. 16

    関数を子コンポーネントに渡す、「this」のコンテキストが間違っている

  17. 17

    Laragon v.2.2.2 の Mail() 関数 - 送信後のエンコーディングが間違っている

  18. 18

    Pythonのraw_input、出力が間違っている

  19. 19

    Python文字列ループの出力が間違っています

  20. 20

    memove()関数のC言語の出力が間違っていますか?

  21. 21

    フロートの比較で出力が間違っている

  22. 22

    Python関数型プログラミング、スコープ、変数。どこが間違っているのですか?

  23. 23

    関数で何が間違っているのですか?

  24. 24

    Java | 関数からの戻りが間違っている

  25. 25

    conv2d関数後の出力サイズが間違っています

  26. 26

    与えられたコマンドが間違っているのになぜ関数フォークを開くのですか?

  27. 27

    Pythonで呼び出される関数のバージョンが間違っています

  28. 28

    次のコードが間違っているのはなぜですか?二項係数

  29. 29

    予期しない出力ですが、コードは間違っていません

ホットタグ

アーカイブ