@@ -55,7 +55,7 @@ def to_json(path_or_buf, obj, orient=None, date_format='epoch',
55
55
obj , orient = orient , date_format = date_format ,
56
56
double_precision = double_precision , ensure_ascii = force_ascii ,
57
57
date_unit = date_unit , default_handler = default_handler ,
58
- index = index )._write ()
58
+ index = index ).write ()
59
59
60
60
if lines :
61
61
s = _convert_to_line_delimits (s )
@@ -95,15 +95,21 @@ def __init__(self, obj, orient, date_format, double_precision,
95
95
def _format_axes (self ):
96
96
raise AbstractMethodError (self )
97
97
98
- def _write (self ):
98
+ def write (self ):
99
+ return self ._write (self .obj , self .orient , self .double_precision ,
100
+ self .ensure_ascii , self .date_unit ,
101
+ self .date_format == 'iso' , self .default_handler )
102
+
103
+ def _write (self , obj , orient , double_precision , ensure_ascii ,
104
+ date_unit , iso_dates , default_handler ):
99
105
return dumps (
100
- self . obj ,
101
- orient = self . orient ,
102
- double_precision = self . double_precision ,
103
- ensure_ascii = self . ensure_ascii ,
104
- date_unit = self . date_unit ,
105
- iso_dates = self . date_format == 'iso' ,
106
- default_handler = self . default_handler
106
+ obj ,
107
+ orient = orient ,
108
+ double_precision = double_precision ,
109
+ ensure_ascii = ensure_ascii ,
110
+ date_unit = date_unit ,
111
+ iso_dates = iso_dates ,
112
+ default_handler = default_handler
107
113
)
108
114
109
115
@@ -115,10 +121,14 @@ def _format_axes(self):
115
121
raise ValueError ("Series index must be unique for orient="
116
122
"'{orient}'" .format (orient = self .orient ))
117
123
118
- def _write (self ):
119
- if not self .index and self .orient == 'split' :
120
- self .obj = {"name" : self .obj .name , "data" : self .obj .values }
121
- return super (SeriesWriter , self )._write ()
124
+ def _write (self , obj , orient , double_precision , ensure_ascii ,
125
+ date_unit , iso_dates , default_handler ):
126
+ if not self .index and orient == 'split' :
127
+ obj = {"name" : obj .name , "data" : obj .values }
128
+ return super (SeriesWriter , self )._write (obj , orient ,
129
+ double_precision ,
130
+ ensure_ascii , date_unit ,
131
+ iso_dates , default_handler )
122
132
123
133
124
134
class FrameWriter (Writer ):
@@ -135,11 +145,15 @@ def _format_axes(self):
135
145
raise ValueError ("DataFrame columns must be unique for orient="
136
146
"'{orient}'." .format (orient = self .orient ))
137
147
138
- def _write (self ):
139
- if not self .index and self .orient == 'split' :
140
- self .obj = self .obj .to_dict (orient = 'split' )
141
- del self .obj ["index" ]
142
- return super (FrameWriter , self )._write ()
148
+ def _write (self , obj , orient , double_precision , ensure_ascii ,
149
+ date_unit , iso_dates , default_handler ):
150
+ if not self .index and orient == 'split' :
151
+ obj = obj .to_dict (orient = 'split' )
152
+ del obj ["index" ]
153
+ return super (FrameWriter , self )._write (obj , orient ,
154
+ double_precision ,
155
+ ensure_ascii , date_unit ,
156
+ iso_dates , default_handler )
143
157
144
158
145
159
class JSONTableWriter (FrameWriter ):
@@ -191,10 +205,15 @@ def __init__(self, obj, orient, date_format, double_precision,
191
205
self .orient = 'records'
192
206
self .index = index
193
207
194
- def _write (self ):
208
+ def _write (self , obj , orient , double_precision , ensure_ascii ,
209
+ date_unit , iso_dates , default_handler ):
195
210
if not self .index :
196
- self .obj = self .obj .drop ('index' , axis = 1 )
197
- data = super (JSONTableWriter , self )._write ()
211
+ obj = obj .drop ('index' , axis = 1 )
212
+ data = super (JSONTableWriter , self )._write (obj , orient ,
213
+ double_precision ,
214
+ ensure_ascii , date_unit ,
215
+ iso_dates ,
216
+ default_handler )
198
217
serialized = '{{"schema": {schema}, "data": {data}}}' .format (
199
218
schema = dumps (self .schema ), data = data )
200
219
return serialized
0 commit comments