解决报错:%d format: a number is required, not str
生活随笔
收集整理的這篇文章主要介紹了
解决报错:%d format: a number is required, not str
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
運行時突然報了一個:%d format: a number is required, not str
?
翻譯后就是:格式化時需要的是一個數字而不是一字符串
排查了一圈是數據庫連接導致的問題,只要原因還是自己的疏忽
# 部分代碼def _db(sql):conn = pymysql.connect(host="101.101.12.86", port="3307", user="root", password="123456", db="django-dev", charset="utf8")......上述代碼中的port端口傳的值是字符串類型,拋錯原因也是因為是這個導致的,以為它格式化時規定的是整數類型,也就是%d
我們再看源碼,源碼中有一段介紹,判斷了port如果不是int類型,就會拋錯誤
# 部分源碼# 判斷port的類型是不是int,如果不是int就拋出錯誤self.port = port or 3306if type(self.port) is not int:raise ValueError("port should be of type int")# 最終的拋錯誤點是在這里格式化的時候拋出來的self.host_info = "socket %s:%d" % (self.host, self.port)if DEBUG:print("connected using socket")?
解決方法:把port的類型修改為整數類型,再運行就行了
# 部分代碼def _db(sql):conn = pymysql.connect(host="101.101.12.86", port=3307, user="root", password="123456", db="django-dev", charset="utf8")......?
以上總結或許能幫助到你,或許幫助不到你,但還是希望能幫助到你,如有疑問、歧義,評論區留言會及時修正發布,謝謝!
微信搜索公眾號:就用python
?
?
?
總結
以上是生活随笔為你收集整理的解决报错:%d format: a number is required, not str的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决There is no getter
- 下一篇: 经典小猪游戏