Python全くの初心者です。
APIで連携する部分をPythonで行っていますが、
テストコードでskkeyをべた書きすると正常に処理が行えますが、
mysqlに登録してあってそちらから取得したものを使うと
argument should be a bytes-like object or ASCII string, not 'NoneType'
というエラーが発生します。
以下、例のコードです。
sample.py
import base64 #settingを読み込むのに追加 import sys, os #settingファイルの読込 sys.path.append(os.path.join('..', 'common')) #sys.path.append(os.path.join('/home/yadorigi', 'secret')) import setting #引数取得 import sys device_id= sys.argv[1] history = sys.argv[2] try: #Mysqlからデータを取得 db_host = setting.db_host db_user = setting.db_user_name db_password = setting.db_password db_database = setting.db_db_name import mysql.connector db=mysql.connector.connect(host=db_host, user=db_user, password=db_password, database=db_database) cursor=db.cursor(dictionary=True) sql = "SELECT * FROM device WHERE id = %s" cursor.execute(sql, (device_id, )) row = cursor.fetchone() #★▼こちらのキーです sk = row["skkey"] sesame_id = row["device_id"] sk_bytes = base64.b64decode(sk) secret_key_hex = sk_bytes[1:17].hex() ~以下略
sk = row["skkey"]の部分を以下のように、テーブルに登録されているものそのままべた書きすると処理は成功します。
#sk = 'BRWi+uJOUFdJIFOFOOEfufeiwkfkIJIIIPFKEUfeehfFFKEOPEFKHGIFpkopFKEODDLieUDqqekfmvbdokfkHudofkeofFFJIEl/i6f/rnE/EEirFJDPVNbfenw0fjifldnrBanS'
※キーは一部サンプルにしています。
キーは可変なのでテーブルから取得したいのですが…
どうすればよいかアドバイスいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。