File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed
Filter options
Expand file tree Collapse file tree 2 files changed +17
-4
lines changed
Original file line number Diff line number Diff line change @@ -129,13 +129,16 @@ def char_array(s):
129
129
def array2Str (o , d ):
130
130
return Thing2Literal (o .tostring (), d )
131
131
132
+ def quote_tuple (t , d ):
133
+ return "(%s)" % (',' .join (escape_sequence (t , d )))
134
+
132
135
conversions = {
133
136
IntType : Thing2Str ,
134
137
LongType : Long2Int ,
135
138
FloatType : Float2Str ,
136
139
NoneType : None2NULL ,
137
- TupleType : escape_sequence ,
138
- ListType : escape_sequence ,
140
+ TupleType : quote_tuple ,
141
+ ListType : quote_tuple ,
139
142
DictType : escape_dict ,
140
143
InstanceType : Instance2Str ,
141
144
ArrayType : array2Str ,
Original file line number Diff line number Diff line change @@ -180,7 +180,11 @@ def execute(self, query, args=None):
180
180
if isinstance (query , unicode ):
181
181
query = query .encode (db .unicode_literal .charset )
182
182
if args is not None :
183
- query = query % db .literal (args )
183
+ if isinstance (args , dict ):
184
+ query = query % dict ((key , db .literal (item ))
185
+ for key , item in args .iteritems ())
186
+ else :
187
+ query = query % tuple ([db .literal (item ) for item in args ])
184
188
try :
185
189
r = None
186
190
r = self ._query (query )
@@ -236,7 +240,13 @@ def executemany(self, query, args):
236
240
e = m .end (1 )
237
241
qv = m .group (1 )
238
242
try :
239
- q = [ qv % db .literal (a ) for a in args ]
243
+ q = []
244
+ for a in args :
245
+ if isinstance (a , dict ):
246
+ q .append (qv % dict ((key , db .literal (item ))
247
+ for key , item in a .iteritems ()))
248
+ else :
249
+ q .append (qv % tuple ([db .literal (item ) for item in a ]))
240
250
except TypeError , msg :
241
251
if msg .args [0 ] in ("not enough arguments for format string" ,
242
252
"not all arguments converted" ):
You can’t perform that action at this time.
0 commit comments