我写了一个查询,我想将json数据添加到Redis中,但是经过处理(我使用pycharm)后,没有显示结果只是Process完成了退出代码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 :(得分:2)
假设您上面的缩进是正确的,您就会询问结果。你的最后一行是player_data == k
,这是一些比较,但它实际上并没有做任何事情,存储或提示。也许,而不是
player_data == k
你想说:
print('Match is %r' % player_data == k)
这将为您提供关于交互是否成功的一些反馈。
答案 1 :(得分:1)
您正在比较player_data == k
,但您没有对结果做任何事情。
我拿了你的代码并稍微修改了一下。所以你可以看发生了什么。 :
我添加了一些print()
语句,以便您可以查看==
比较是否为真。
如果他们不是真的,我还会添加非零退出。你看到上面的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"
}
]