2017-12-16 26 views
0

jsonデータをRedisに追加したいのですが、処理後(私はpycharmを使用しています)、終了コード0で処理が完了しました。どうすれば成功したかどうかを確認できますか?ここでデータのインポートが成功したかどうかを確認する方法

はコードです:

import json 
import redis 
import mysql.connector 

r = redis.StrictRedis(
host='localhost', 
port=6379, 
charset="utf-8", decode_responses=True) 

cnx = mysql.connector.connect(user='root', password='000000', 
           host='127.0.0.1', 
           database='m') 

player_data= [ 
    {'playID':'aardsda01', 'birthYear':'1981', 'birthMonth':'12', 'birthDay':'27', 'birthCountry':'USA', 'birthState':'CO', 
    'nameFirst':'David', 'nameLast':'Aardsma'} 
] 

json_store = json.dumps(player_data) 
r.set('players', json_store) 
k = json.loads(r.get('players')) 
player_data == k 

はどうもありがとうございました!

+0

ソフトウェア設計の一部は、何が成功したのか、それをどのように測定するのかを考えています。私は、あなたがあなたの問題を考えている間にその質問について考えることをお勧めします。通常、これはソフトウェアテストの形で表現されます。ソフトウェアテストは、ソフトウェアが行うことを保証する非常に正確な方法と一般的に考えられています。 –

+0

あなたの親切な提案に感謝します。私は赤ちゃんの緑色の手であることをとても残念に思っています。私が知りたいのは、輸入の成功を確認するための焦茶や赤ちゃんを通す方法です。 –

+0

https://docs.pytest.org/en/latest/getting-started.html –

答えて

1

player_data == kを比較していますが、結果は何もしていません。

私はあなたのコードを取ってわずかに変更しました。だからあなたはを参照してください何が起こっていた。 :

print()文を追加して、==の比較結果が真であるかどうかを確認できます。

また、これらが真でない場合は、ゼロ以外のexitを追加します。あなたは上記のexit 0を見ました。 0は一般的に正常終了です。私はexit(1)を追加しただけで、あなたのプログラムがエラーで終了した場合、あなたはエラーコードでそれを表現することができました。

import json 
import redis 
import os 

r = redis.StrictRedis(host='localhost', port=6379, 
    charset="utf-8", decode_responses=True) 

player_data= [ 
    {'playID':'aardsda01', 'birthYear':'1981', 'birthMonth':'12', 'birthDay':'27', 'birthCountry':'USA', 'birthState':'CO', 
    'nameFirst':'David', 'nameLast':'Aardsma'} 
] 

json_store = json.dumps(player_data) 
r.set('players', json_store) 
k = json.loads(r.get('players')) 
if player_data != k: 
    print("player_data and k were not equal") 
    exit(1) # exit codes other than 0 are errors 
else: 
    print("player_data and k were equal!") 
    # as you've seen, 0 is the default return value 

これを実行すると、コードが正常に実行されていることがわかります。

/ # python t.py 
player_data and k were equal! 

ここには、いくつかのアイデアがあります。

$ redis-cli get players | python -mjson.tool 
[ 
    { 
     "playID": "aardsda01", 
     "birthYear": "1981", 
     "birthMonth": "12", 
     "birthDay": "27", 
     "birthCountry": "USA", 
     "birthState": "CO", 
     "nameFirst": "David", 
     "nameLast": "Aardsma" 
    } 
] 
+0

ありがとうございます! –

2

上記のインデントが正しいと仮定すると、結果についての質問です。最後の行にはplayer_data == kと記載されていますが、実際には何もしない、保存する、プロンプトを出すことはありません。おそらく、代わりに

player_data == k 

のあなたが言いたい:相互作用が成功したかどうかについてのあなたにいくつかのフィードバックを与える

print('Match is %r' % player_data == k) 

を。

関連する問題