@@ -198,12 +198,13 @@ def read_jsonline_lazy(filename, encoding=_ENCODING_UTF8, default=None):
198198 file .close ()
199199
200200
201- def write_jsonline (filename , items , encoding = _ENCODING_UTF8 ):
201+ def write_jsonline (filename , items , encoding = _ENCODING_UTF8 , serialize_method = None ):
202202 """
203203 write items to file with json line format
204204 :param filename: destination file path
205205 :param items: items to be saved line by line
206206 :param encoding: file encoding
207+ :param serialize_method: serialization method to process object
207208 :return: None
208209 """
209210 if isinstance (items , str ):
@@ -216,7 +217,7 @@ def write_jsonline(filename, items, encoding=_ENCODING_UTF8):
216217 raise TypeError ('items can\' t be iterable' )
217218 file = open (filename , 'w' , encoding = encoding )
218219 for item in items :
219- file .write (json .dumps (item , ensure_ascii = False ) + '\n ' )
220+ file .write (json .dumps (item , ensure_ascii = False , default = serialize_method ) + '\n ' )
220221 file .close ()
221222
222223
@@ -274,29 +275,31 @@ def append_lines(filename, lines, remove_file=False, encoding=_ENCODING_UTF8):
274275 append_line (filename , line , encoding )
275276
276277
277- def append_jsonline (filename , item , encoding = _ENCODING_UTF8 ):
278+ def append_jsonline (filename , item , encoding = _ENCODING_UTF8 , serialize_method = None ):
278279 """
279280 append item as a line of json string to file
280281 :param filename: destination file
281282 :param item: item to be saved
282283 :param encoding: file encoding
284+ :param serialize_method: serialization method to process object
283285 :return: None
284286 """
285287 with open (filename , 'a' , encoding = encoding ) as f :
286- f .write (json .dumps (item , ensure_ascii = False ) + '\n ' )
288+ f .write (json .dumps (item , ensure_ascii = False , default = serialize_method ) + '\n ' )
287289
288290
289- def append_jsonlines (filename , items , encoding = _ENCODING_UTF8 ):
291+ def append_jsonlines (filename , items , encoding = _ENCODING_UTF8 , serialize_method = None ):
290292 """
291293 append item as some lines of json string to file
292294 :param filename: destination file
293295 :param items: items to be saved
294296 :param encoding: file encoding
297+ :param serialize_method: serialization method to process object
295298 :return: None
296299 """
297300 with open (filename , 'a' , encoding = encoding ) as f :
298301 for item in items :
299- f .write (json .dumps (item , ensure_ascii = False ) + '\n ' )
302+ f .write (json .dumps (item , ensure_ascii = False , default = serialize_method ) + '\n ' )
300303
301304
302305class __BaseFile (object ):
0 commit comments