【问题标题】:How to check if the import of data successful or not如何检查数据导入是否成功
【发布时间】:2018-05-30 06:25:30
【问题描述】:

我写了一个查询,我想将 json 数据添加到 Redis 中,但是处理后(我使用 pycharm),没有显示任何结果,只是 Process finished with exit code 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

非常感谢!

【问题讨论】:

  • 软件设计的一部分是思考成功真正意味着什么,以及如何衡量它。我鼓励你在考虑你的问题时考虑这个问题。这通常以软件测试的形式表达,这通常被认为是一种非常准确的方法,可以确保软件完成它应该做的事情。
  • 非常感谢您的友好建议。非常抱歉我是redis的新手,想了解一下通过pycharm或者redis-cli检查导入成功的方法。

标签: python database redis


【解决方案1】:

假设您上面的缩进是正确的,您是在询问结果。您的最后一行说player_data == k,这是一些比较,但它实际上并没有做任何事情,被存储或提示。也许,而不是

player_data == k

你想说:

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

这会给你一些关于交互是否成功的反馈。

【讨论】:

    【解决方案2】:

    您正在比较 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"
        }
    ]
    

    【讨论】:

      猜你喜欢
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多