【发布时间】:2020-03-15 12:01:48
【问题描述】:
我得到了错误-->
Traceback (most recent call last):
File "C:\Users\REJI\Desktop\project\the project\book_store.py", line 346, in <module>
sale()
File "C:\Users\REJI\Desktop\project\the project\book_store.py", line 321, in sale
read_sale()
File "C:\Users\REJI\Desktop\project\the project\book_store.py", line 217, in read_sale
print(body%(str(row[0]),row[4][0:20],str(row[2])[0:15],str(row[1]),str(row[3])))
TypeError: 'NoneType' object is not subscriptable
对于这个 python -->
def read_sale():
qs='''select s1.*,book_title from sale s1, bookmaster b1
where s1.book_no=b1.book_no order by s1.book_no'''
cur.execute(qs)
data=cur.fetchall()
head='''\
All Sales
+-------+--------------------+------------+----------+----------+
|Book No| Title |Date of sale| Quantity | Price |
+-------+--------------------+------------+----------+----------+'''
body='''\
|%7s|%20s|%12s|%10s|%10s|
+-------+--------------------+------------+----------+----------+'''
print(head)
for row in data:
print(body%(str(row[0]),str(row[4])[0:20],str(row[2])[0:15],str(row[1]),str(row[3])))
用于将值输入到此 mysql 表中存在的列中-->
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| book_no | int(30) | YES | | NULL | |
| quantity | varchar(15) | YES | | NULL | |
| sdate | date | YES | | NULL | |
| price | int(40) | YES | | NULL | |
| title | varchar(20) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
如果我将一些代码更改为 str,我会得到下面的结果,我不希望列标题和数量的信息不显示,我希望它们显示 mysql 表中存在的某个值。
Enter your choice 1-51
All Sales
+-------+--------------------+------------+----------+----------+
|Book No| Title |Date of sale| Quantity | Price |
+-------+--------------------+------------+----------+----------+
| 147| **None** | 2019-11-20| **None**| 50|
+-------+--------------------+------------+----------+----------+
sale Menu`enter code here`
-----------------
1.To read_sale
2.To add_sale
3.TO Exit and return to main menu
所以,如果你能帮助我, 对你的帮助表示感谢 谢谢
【问题讨论】:
-
错误信息中的行与脚本不一样。错误消息在
row[4]周围没有str()。看起来您发布了生成没有错误的输出的脚本版本。 -
问题是书有
title = NULL,销售有quantity = NULL。 -
根据 TypeError,看起来 row[4](标题)的值为 None。 stackoverflow.com/a/9320883/5249058 。这可能是由于您的 sql 连接。为什么不先打印每一行来进行调试。
标签: python mysql mysql-python mysql-connector-python