mysql> select * from server_record \G;
*************************** 1. row ***************************
id: 4
day: 2022-07-08
available: ('1377.25',)
used: ('2224.10',)
used_rate: ('62
上記はデータベースに保存したレコードですが、available、used、used_rateの値はすべて文字列ですが、見られる現象はすべてタプルであり、期待値とは大きく異なります。
トラブルシューティング手順:
ssr_obj = ServerRecord()
ssr_obj.server_id = self.server_id
ssr_obj.day = self.today
ssr_obj.available = self.server.get("Available"),
ssr_obj.used = self.server.get("Used"),
ssr_obj.used_rate = self.server.get("Use%"),
ssr_obj.save()
available、used、used_rate には、値を割り当てるときに行末にカンマが含まれていることがわかります。。。。。
つまり、元々は文字列で、カンマを追加するとタプルになるので、データベースに格納されるものもタプルになります。
コンマが原因で発生する悲惨なケース (キーはコンマです。pycharm ではエンコードの問題が発生しないため、トラブルシューティングはさらに困難です)