我想從python腳本創建一個SQL字符串。TypeError:強制爲Unicode:需要字符串或緩衝區,找不到類型
這是代碼:
sql_query = ('insert into ithelpdesk '
'(id,display_id,subject,description,priority,status,requester_name,source,responder_id,due_by,updated_at,frDueBy,ticket_type,created_at)'
' values ('
'"' + str(data['id']) + '",'
'"' + str(data['display_id']) + '",'
'"' + data['subject'] + '",'
'"' + data['description'] + '",'
'"' + str(data['priority']) + '",'
'"' + str(data['status']) + '",'
'"' + data['requester_name'] + '",'
'"' + str(data['source']) + '",'
'"' + str(data['responder_id']) + '",'
'"' + str(data['due_by']) + '",'
'"' + str(data['updated_at']) + '",'
'"' + str(data['frDueBy']) + '",'
'"' + data['ticket_type'] + '",'
'"' + str(data['created_at']) + '"'
')')
,當我跑我得到這個回溯消息:
Traceback (most recent call last):
File "c:\users\swatson\dropbox\source files\winpython\dash\newTickets.py", line 198, in <module>
main()
File "c:\users\swatson\dropbox\source files\winpython\dash\newTickets.py", line 159, in main
addNew(n)
File "c:\users\swatson\dropbox\source files\winpython\dash\newTickets.py", line 65, in addNew
'"' + str(data['created_at']) + '"'
TypeError: coercing to Unicode: need string or buffer, NoneType found
現在我知道的一個事實(通過執行printstr(數據[ 'created_at' ]))在data ['created_at']處有一個值,我也知道它與data ['updated_at']的值相同,所以我不知道如何解決這個問題?
謝謝你,我現在就試試。我正在使用MYSQLDB –
@ Stevo_300:對於SQL參數,MySQLDB使用'%s'而不是'?'。不知道它是否支持named。 –
@ Stevo_300:MySQLDB支持'%(name)s'樣式參數,所以你的代碼可以使用'%(id)s,%(display_id)s,%(subject)s'等。 –