/
_jsonlines.py
45 lines (32 loc) · 1.01 KB
/
_jsonlines.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# encoding: utf-8
from __future__ import absolute_import, unicode_literals
from ._json import JsonTableWriter
try:
import simplejson as json
except ImportError:
import json
class JsonLinesTableWriter(JsonTableWriter):
"""
A table writer class for JSON lines format.
"""
FORMAT_NAME = "json_lines"
@property
def format_name(self):
return self.FORMAT_NAME
@property
def support_split_write(self):
return True
def write_table(self):
"""
|write_table| with
`Labeled Tab-separated Values (LTSV) <http://ltsv.org/>`__ format.
Invalid characters in labels/data are removed.
:raises pytablewriter.EmptyHeaderError: If the |header_list| is empty.
:Example:
:ref:`example-ltsv-table-writer`
"""
with self._logger:
self._verify_property()
self._preprocess()
for value_list in self._table_value_matrix:
self._write_line(json.dumps(value_list))