hyb
2026-01-30 7657e1b2fa251a2ea372710ad75cb395a3c0e374
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
Ë
nñúhg¼ãó¼—ddlmZddlmZmZddlmZddlmZddlm    Z    ddl
m Z m Z m Z mZmZmZmZmZddlZddlZddlmZdd    lmZmZdd
lmZdd lmZdd lm Z dd l!m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(m)Z)ddl*m+Z+ddl,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCddlDmEZEddlFmGZGmHZHddlImJZJe r.ddlKmLZLmMZMddlNmOZOddlPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[ddl\m]Z]eded¬ «Z^e                                                dH                                                                                                                    dId$„«Z_e                                                dH                                                                                                                    dJd%„«Z_                                                dK                                                                                                                    dLd)„Z_Gd*„d+e«Z`Gd,„d-e`«ZaGd.„d/e`«ZbGd0„d1eb«Zced!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d2œ                                                                                                                                                    dMd3„«Zded!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d4œ                                                                                                                                                    dNd5„«Zded!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d6œ                                                                                                                                                    dOd7„«Zded!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d!d8œ                                                                                                                                                    dPd9„«Zde"e7d#e7d:d"z¬;«dd<ddd&d&d'ddd=d'dd(ddejÊd>d8œ                                                                                                                                                    dQd?„«ZdGd@„dAejÌee^«ZgGdB„dC«ZhGdD„dEeh«ZiGdF„dGeh«Zjy)Ré)Ú annotations)ÚABCÚabstractmethod)Úabc)ÚStringIO)Úislice)Ú TYPE_CHECKINGÚAnyÚCallableÚGenericÚLiteralÚTypeVarÚfinalÚoverloadN)Úlib)Ú ujson_dumpsÚ ujson_loads)ÚiNaT)Úimport_optional_dependency©ÚAbstractMethodError)Údoc)Úfind_stack_level)Úcheck_dtype_backend)Ú
ensure_strÚis_string_dtype)Ú PeriodDtype)Ú    DataFrameÚIndexÚ
MultiIndexÚSeriesÚisnaÚnotnaÚ to_datetime)Úconcat)Ú _shared_docs)Úarrow_table_to_pandas)    Ú    IOHandlesÚ dedup_namesÚextension_to_compressionÚ file_existsÚ
get_handleÚ is_fsspec_urlÚis_potential_multi_indexÚis_urlÚstringify_path)Úconvert_to_line_delimits)Úbuild_table_schemaÚparse_table_schema)Úvalidate_integer)ÚHashableÚMapping)Ú TracebackType) ÚCompressionOptionsÚDtypeArgÚ DtypeBackendÚFilePathÚ
IndexLabelÚ
JSONEngineÚJSONSerializableÚ
ReadBufferÚSelfÚStorageOptionsÚ WriteBuffer)ÚNDFrameÚFrameSeriesStrT)ÚframeÚseries)Úbound.Ú path_or_bufÚstorage_optionscó—y©N©©rHÚobjÚorientÚ date_formatÚdouble_precisionÚ force_asciiÚ    date_unitÚdefault_handlerÚlinesÚ compressionÚindexÚindentrIÚmodes              úGH:\Change_password\venv_build\Lib\site-packages\pandas/io/json/_json.pyÚto_jsonr[dó€ð"ócó—yrKrLrMs              rZr[r[xr\r]TFÚinferc óÊ—|dvr|
dur td«‚|dvr|
dur td«‚|
€d}
|r|dk7r td«‚| d    vrd
| ›d }t|«‚| d k(r|r|dk7r d }t|«‚|dk(r0t|t«r |j|jxsd¬«}|dk(rt|t
«rt }n9t|t«rt}n"t|t
«rt}n td«‚|||||||||
| ¬«    j«}|r t|«}|4t|| |    | ¬«5}|jj|«ddd«y|S#1swYyxYw)N)ÚrecordsÚvaluesTzT'index=True' is only valid when 'orient' is 'split', 'table', 'index', or 'columns'.©rWÚcolumnsFzV'index=False' is only valid when 'orient' is 'split', 'table', 'records', or 'values'.raz3'lines' keyword only valid when 'orient' is records)ÚaÚwzmode=z@ is not a valid option.Only 'w' and 'a' are currently supported.rezNmode='a' (append) is only supported when lines is True and orient is 'records'Útablerb)Únamez''obj' should be a Series or a DataFrame)rOrPrQÚ ensure_asciirSrTrWrX)rVrI)Ú
ValueErrorÚ
isinstancer!Úto_framerhrÚJSONTableWriterÚ SeriesWriterÚ FrameWriterÚNotImplementedErrorÚwriter1r,Úhandle)rHrNrOrPrQrRrSrTrUrVrWrXrIrYÚmsgÚwriterÚsÚhandless                  rZr[r[Œs³€ð Ð&Ñ&¨5°D©=Üð %ó
ð    
ð
Ð'Ñ    '¨E°U©NÜð &ó
ð    
ð
ˆàˆá ˜9Ò$ÜÐNÓOÐOà :ÑàD6ð8ð 8ð     ô˜‹oÐà ˆs‚{™E V¨yÒ%8ð 4ð     ô˜‹oÐà ÒœZ¨¬VÔ4؏l‰l §¡Ò 4¨HˆlÓ5ˆðÒœZ¨¬YÔ7Ü ‰Ü    CœÔ     Ü‰Ü    CœÔ    #܉ä!Ð"KÓLÐLáØ ØØØ)Ø ØØ'ØØô
    ÷ eƒgðñ Ü $ QÓ 'ˆàÐä Ø ˜¨;Èô
ð    $à Ø N‰N×  Ñ   Ô #÷    $ð ðˆ÷     $ð ús Ä2EÅE"cóx—eZdZUded<        d                                                                            d    d„Zd
d„Zd d„Zeed d„««Z    y) ÚWriterÚstrÚ_default_orientNc
ó̗||_|€ |j}||_||_||_||_||_||_||_|    |_    d|_
|j«yrK) rNrzrOrPrQrirSrTrWrXÚis_copyÚ _format_axes)
ÚselfrNrOrPrQrirSrWrTrXs
          rZÚ__init__zWriter.__init__åsj€ðˆŒà ˆ>Ø×)Ñ)ˆFàˆŒ Ø&ˆÔØ 0ˆÔØ(ˆÔØ"ˆŒØ.ˆÔ؈Œ
؈Œ àˆŒ Ø ×ÑÕr]có—t|«‚rKr©r~s rZr}zWriter._format_axesó €Ü! $Ó'Ð'r]c
óҗ|jdk(}t|j|j|j|j
|j ||j|j¬«S)NÚiso)rOrQrirSÚ    iso_datesrTrX)    rPrÚ obj_to_writerOrQrirSrTrX)r~r…s  rZrqz Writer.writes[€Ø×$Ñ$¨Ñ-ˆ    ÜØ × Ñ Ø—;‘;Ø!×2Ñ2Ø×*Ñ*Ø—n‘nØØ ×0Ñ0Ø—;‘;ô    
ð        
r]có—y)zObject to write in JSON format.NrLrs rZr†zWriter.obj_to_writeór]©Nr)rNrCrOú
str | NonerPryrQÚintriÚboolrSryrWrŒrTú(Callable[[Any], JSONSerializable] | NonerXr‹ÚreturnÚNone©rŽr©rŽry©rŽz"NDFrame | Mapping[IndexLabel, Any])
Ú__name__Ú
__module__Ú __qualname__Ú__annotations__rr}rqÚpropertyrr†rLr]rZrxrxâs …ØÓðEIØðà ððððð    ð
ð ð ð ðððððBðððð
óó:(ó 
ðØò.óóñ.r]rxcó*—eZdZdZedd„«Zdd„Zy)rnrWcóª—|js<|jdk(r-|jj|jjdœS|jS)NÚsplit)rhÚdata)rWrOrNrhrbrs rZr†zSeriesWriter.obj_to_writes8€àzŠz˜dŸk™k¨WÒ4Ø ŸH™HŸM™M°4·8±8·?±?ÑCÐ Cà—8‘8ˆOr]có–—|jjjs)|jdk(rt    d|j›d«‚yy)NrWz(Series index must be unique for orient='ú')rNrWÚ    is_uniquerOrjrs rZr}zSeriesWriter._format_axes"sA€Øx‰x~‰~×'Ò'¨D¯K©K¸7Ò,BÜÐGÈÏ É À}ÐTUÐVÓWÐ Wð-CÐ'r]Nr’r©r“r”r•rzr—r†r}rLr]rZrnrns„Ø€Oà òóðô Xr]rncó*—eZdZdZedd„«Zdd„Zy)rordcó–—|js0|jdk(r!|jjd¬«}|d=|S|j}|S)Nrš)rOrW)rWrOrNÚto_dict)r~r†s  rZr†zFrameWriter.obj_to_write*sL€àzŠz˜dŸk™k¨WÒ4ØŸ8™8×+Ñ+°7Ð+Ó;ˆLؘWÐ%ðÐð Ÿ8™8ˆLØÐr]có"—|jjjs'|jdvrt    d|j›d«‚|jj
js(|jdvrt    d|j›d«‚yy)z:
        Try to format axes if they are datelike.
        rcz+DataFrame index must be unique for orient='z'.)rWrdraz-DataFrame columns must be unique for orient='N)rNrWržrOrjrdrs rZr}zFrameWriter._format_axes3sŠ€ðx‰x~‰~×'Ò'¨D¯K©KÐ;OÑ,OÜØ=¸d¿k¹k¸]È"ÐMóð ðx‰x×Ñ×)Ò)¨d¯k©kð>
ñ/
ô
Ø?ÀÇ Á ¸}ÈBÐOóð ð /
Ð)r]Nr’rrŸrLr]rZroro's„Ø€Oà òóðôr]rocó^‡—eZdZdZ        d                                                                    dˆfd„ Zedd„«ZˆxZS)rmrac
óÆ•—t‰ ||||||||||    ¬«    |dk7rd|›d}
t|
«‚t||j¬«|_|j dk(r%t|jt«r td«‚|j dk(r+|jt|jj«vs8t|jj|jj««r d    }
t|
«‚|j!«}|j#d
g¬ «j} t| «r|| j%d „«|| <t|jj&t(«r|jj+«|_|js|j-d ¬«|_n|j-d¬«|_d|_d|_||_y)zù
        Adds a `schema` attribute with the Table Schema, resets
        the index (can't do in caller, because the schema inference needs
        to know what the index is, forces orient to records, and forces
        date_format to 'iso'.
        )rTrXr„z8Trying to write with `orient='table'` and `date_format='zH'`. Table Schema requires dates to be formatted with `date_format='iso'`©rWéz6orient='table' is not supported for MultiIndex columnséz/Overlapping names between the index and columnsÚ    timedelta)Úincludecó"—|j«SrK)Ú    isoformat)Úxs rZú<lambda>z*JSONTableWriter.__init__.<locals>.<lambda>‚s €¸A¿K¹K»M€r]T)ÚdropFraN)Úsuperrrjr2rWÚschemaÚndimrkrdr rprhÚsetÚnamesÚlenÚ intersectionÚcopyÚ select_dtypesÚmapÚdtyperÚ to_timestampÚ reset_indexrNrPrO) r~rNrOrPrQrirSrWrTrXrsÚ
timedeltasÚ    __class__s             €rZrzJSONTableWriter.__init__Hs ø€ô$    ‰ÑØ Ø Ø Ø Ø Ø Ø Ø+Øð    ô
    
ð ˜%Ò ð!Ø!,  ð.;ð;ð ô
˜S“/Ð !ä(¨°D·J±JÔ?ˆŒ ð 8‰8qŠ=œZ¨¯ © ´ZÔ@Ü%ØHóð ð X‰X˜Š]Ø—‘œS §¡§¡Ó1Ñ1ܐ3—;‘;×+Ñ+¨C¯I©I¯O©OÓ<Ô=àCˆCܘS“/Ð !àh‰h‹jˆØ×&Ñ&° ¨}Ð&Ó=×EÑEˆ
Ü ˆzŒ?Ø! *™o×1Ñ1Ñ2IÓJˆC
‰Oä c—i‘i—o‘o¤{Ô 3ØŸ    ™    ×.Ñ.Ó0ˆCŒIðzŠzØ—‘¨DÓ1ˆDHà—‘¨EÓ2ˆDŒHØ ˆÔ؈Œ ؈
r]có4—|j|jdœS)N)r±r›)r±rNrs rZr†zJSONTableWriter.obj_to_writes€àŸ+™+¨t¯x©xÑ8Ð8r]r‰)rOrŠrPryrQr‹rirŒrSryrWrŒrTrrXr‹rŽrr’)r“r”r•rzrr—r†Ú __classcell__)r¾s@rZrmrmEs‘ø„Ø€OðEIØðFððFðð    Fð
ð Fð ð FððFððFðBðFððFð
õFðPò9óô9r]rm)rOÚtyprºÚ convert_axesÚ convert_datesÚkeep_default_datesÚ precise_floatrSÚencodingÚencoding_errorsrUrVÚnrowsrIÚ dtype_backendÚenginecó—yrKrL©rHrOrÁrºrÂrÃrÄrÅrSrÆrÇrUÚ    chunksizerVrÈrIrÉrÊs                  rZÚ    read_jsonrΕó€ð,r])rOrºrÂrÃrÄrÅrSrÆrÇrUrVrÈrIrÉrÊcó—yrKrLrÌs                  rZrÎrήrÏr])rOrºrÂrÃrÄrÅrSrÆrÇrUrÍrVrÈrIrÉrÊcó—yrKrLrÌs                  rZrÎrÎÇrÏr])rOrÁrºrÂrÃrÄrÅrSrÆrÇrUrÍrVrÈrIrÉrÊcó—yrKrLrÌs                  rZrÎrÎàrÏr]Údecompression_options)rIrÓrEÚstrictÚujsoncó&—|dk(r |r td«‚|dk(r |r td«‚t|«|€|dk7rd}|€|dk7rd}t|fid|“d|“d|“d|“d    |“d
|“d |“d |“d |    “d| “d| “d| “d|“d|“d|
“d|“d|“Ž}| r|S|j«S)a|"
    Convert a JSON string to pandas object.
 
    Parameters
    ----------
    path_or_buf : a valid JSON str, path object or file-like object
        Any valid string path is acceptable. The string could be a URL. Valid
        URL schemes include http, ftp, s3, and file. For file URLs, a host is
        expected. A local file could be:
        ``file://localhost/path/to/table.json``.
 
        If you want to pass in a path object, pandas accepts any
        ``os.PathLike``.
 
        By file-like object, we refer to objects with a ``read()`` method,
        such as a file handle (e.g. via builtin ``open`` function)
        or ``StringIO``.
 
        .. deprecated:: 2.1.0
            Passing json literal strings is deprecated.
 
    orient : str, optional
        Indication of expected JSON string format.
        Compatible JSON strings can be produced by ``to_json()`` with a
        corresponding orient value.
        The set of possible orients is:
 
        - ``'split'`` : dict like
          ``{{index -> [index], columns -> [columns], data -> [values]}}``
        - ``'records'`` : list like
          ``[{{column -> value}}, ... , {{column -> value}}]``
        - ``'index'`` : dict like ``{{index -> {{column -> value}}}}``
        - ``'columns'`` : dict like ``{{column -> {{index -> value}}}}``
        - ``'values'`` : just the values array
        - ``'table'`` : dict like ``{{'schema': {{schema}}, 'data': {{data}}}}``
 
        The allowed and default values depend on the value
        of the `typ` parameter.
 
        * when ``typ == 'series'``,
 
          - allowed orients are ``{{'split','records','index'}}``
          - default is ``'index'``
          - The Series index must be unique for orient ``'index'``.
 
        * when ``typ == 'frame'``,
 
          - allowed orients are ``{{'split','records','index',
            'columns','values', 'table'}}``
          - default is ``'columns'``
          - The DataFrame index must be unique for orients ``'index'`` and
            ``'columns'``.
          - The DataFrame columns must be unique for orients ``'index'``,
            ``'columns'``, and ``'records'``.
 
    typ : {{'frame', 'series'}}, default 'frame'
        The type of object to recover.
 
    dtype : bool or dict, default None
        If True, infer dtypes; if a dict of column to dtype, then use those;
        if False, then don't infer dtypes at all, applies only to the data.
 
        For all ``orient`` values except ``'table'``, default is True.
 
    convert_axes : bool, default None
        Try to convert the axes to the proper dtypes.
 
        For all ``orient`` values except ``'table'``, default is True.
 
    convert_dates : bool or list of str, default True
        If True then default datelike columns may be converted (depending on
        keep_default_dates).
        If False, no dates will be converted.
        If a list of column names, then those columns will be converted and
        default datelike columns may also be converted (depending on
        keep_default_dates).
 
    keep_default_dates : bool, default True
        If parsing dates (convert_dates is not False), then try to parse the
        default datelike columns.
        A column label is datelike if
 
        * it ends with ``'_at'``,
 
        * it ends with ``'_time'``,
 
        * it begins with ``'timestamp'``,
 
        * it is ``'modified'``, or
 
        * it is ``'date'``.
 
    precise_float : bool, default False
        Set to enable usage of higher precision (strtod) function when
        decoding string to double values. Default (False) is to use fast but
        less precise builtin functionality.
 
    date_unit : str, default None
        The timestamp unit to detect if converting dates. The default behaviour
        is to try and detect the correct precision, but if this is not desired
        then pass one of 's', 'ms', 'us' or 'ns' to force parsing only seconds,
        milliseconds, microseconds or nanoseconds respectively.
 
    encoding : str, default is 'utf-8'
        The encoding to use to decode py3 bytes.
 
    encoding_errors : str, optional, default "strict"
        How encoding errors are treated. `List of possible values
        <https://docs.python.org/3/library/codecs.html#error-handlers>`_ .
 
        .. versionadded:: 1.3.0
 
    lines : bool, default False
        Read the file as a json object per line.
 
    chunksize : int, optional
        Return JsonReader object for iteration.
        See the `line-delimited json docs
        <https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#line-delimited-json>`_
        for more information on ``chunksize``.
        This can only be passed if `lines=True`.
        If this is None, the file will be read into memory all at once.
    {decompression_options}
 
        .. versionchanged:: 1.4.0 Zstandard support.
 
    nrows : int, optional
        The number of lines from the line-delimited jsonfile that has to be read.
        This can only be passed if `lines=True`.
        If this is None, all the rows will be returned.
 
    {storage_options}
 
    dtype_backend : {{'numpy_nullable', 'pyarrow'}}, default 'numpy_nullable'
        Back-end data type applied to the resultant :class:`DataFrame`
        (still experimental). Behaviour is as follows:
 
        * ``"numpy_nullable"``: returns nullable-dtype-backed :class:`DataFrame`
          (default).
        * ``"pyarrow"``: returns pyarrow-backed nullable :class:`ArrowDtype`
          DataFrame.
 
        .. versionadded:: 2.0
 
    engine : {{"ujson", "pyarrow"}}, default "ujson"
        Parser engine to use. The ``"pyarrow"`` engine is only available when
        ``lines=True``.
 
        .. versionadded:: 2.0
 
    Returns
    -------
    Series, DataFrame, or pandas.api.typing.JsonReader
        A JsonReader is returned when ``chunksize`` is not ``0`` or ``None``.
        Otherwise, the type returned depends on the value of ``typ``.
 
    See Also
    --------
    DataFrame.to_json : Convert a DataFrame to a JSON string.
    Series.to_json : Convert a Series to a JSON string.
    json_normalize : Normalize semi-structured JSON data into a flat table.
 
    Notes
    -----
    Specific to ``orient='table'``, if a :class:`DataFrame` with a literal
    :class:`Index` name of `index` gets written with :func:`to_json`, the
    subsequent read operation will incorrectly set the :class:`Index` name to
    ``None``. This is because `index` is also used by :func:`DataFrame.to_json`
    to denote a missing :class:`Index` name, and the subsequent
    :func:`read_json` operation cannot distinguish between the two. The same
    limitation is encountered with a :class:`MultiIndex` and any names
    beginning with ``'level_'``.
 
    Examples
    --------
    >>> from io import StringIO
    >>> df = pd.DataFrame([['a', 'b'], ['c', 'd']],
    ...                   index=['row 1', 'row 2'],
    ...                   columns=['col 1', 'col 2'])
 
    Encoding/decoding a Dataframe using ``'split'`` formatted JSON:
 
    >>> df.to_json(orient='split')
        '{{"columns":["col 1","col 2"],"index":["row 1","row 2"],"data":[["a","b"],["c","d"]]}}'
    >>> pd.read_json(StringIO(_), orient='split')
          col 1 col 2
    row 1     a     b
    row 2     c     d
 
    Encoding/decoding a Dataframe using ``'index'`` formatted JSON:
 
    >>> df.to_json(orient='index')
    '{{"row 1":{{"col 1":"a","col 2":"b"}},"row 2":{{"col 1":"c","col 2":"d"}}}}'
 
    >>> pd.read_json(StringIO(_), orient='index')
          col 1 col 2
    row 1     a     b
    row 2     c     d
 
    Encoding/decoding a Dataframe using ``'records'`` formatted JSON.
    Note that index labels are not preserved with this encoding.
 
    >>> df.to_json(orient='records')
    '[{{"col 1":"a","col 2":"b"}},{{"col 1":"c","col 2":"d"}}]'
    >>> pd.read_json(StringIO(_), orient='records')
      col 1 col 2
    0     a     b
    1     c     d
 
    Encoding with Table Schema
 
    >>> df.to_json(orient='table')
        '{{"schema":{{"fields":[{{"name":"index","type":"string"}},{{"name":"col 1","type":"string"}},{{"name":"col 2","type":"string"}}],"primaryKey":["index"],"pandas_version":"1.4.0"}},"data":[{{"index":"row 1","col 1":"a","col 2":"b"}},{{"index":"row 2","col 1":"c","col 2":"d"}}]}}'
 
    The following example uses ``dtype_backend="numpy_nullable"``
 
    >>> data = '''{{"index": {{"0": 0, "1": 1}},
    ...        "a": {{"0": 1, "1": null}},
    ...        "b": {{"0": 2.5, "1": 4.5}},
    ...        "c": {{"0": true, "1": false}},
    ...        "d": {{"0": "a", "1": "b"}},
    ...        "e": {{"0": 1577.2, "1": 1577.1}}}}'''
    >>> pd.read_json(StringIO(data), dtype_backend="numpy_nullable")
       index     a    b      c  d       e
    0      0     1  2.5   True  a  1577.2
    1      1  <NA>  4.5  False  b  1577.1
    rgz)cannot pass both dtype and orient='table'z0cannot pass both convert_axes and orient='table'TrOrÁrºrÂrÃrÄrÅrSrÆrUrÍrVrÈrIrÇrÉrÊ)rjrÚ
JsonReaderÚread)rHrOrÁrºrÂrÃrÄrÅrSrÆrÇrUrÍrVrÈrIrÉrÊÚ json_readers                   rZrÎrÎùs-€ðZÒ™UÜÐDÓEÐEØ Ò™\ÜÐKÓLÐLä˜ Ô&à €}˜ 7Ò*ð ˆØÐ ¨'Ò 1؈ äØòáðñ ðñð    ñ
"ð ñ $ð ñ.ðñ$ðñðñðñðñðñ ðñðñ(ðñ (ð!ñ"$ð#ñ$ð%€Kñ*ØÐà×ÑÓ!Ð!r]có0—eZdZdZddej
df                                                                                                    dd„Zd„Zd„Zdd„Z    e
dd    „«Z e
dd
„«Z e
dd „«Z dd „Z dd „Z dd„Z dd„Ze
dd„«Ze
dd„«Ze
dd„«Zdd„Zdd„Z                                dd„Zy)r×zö
    JsonReader provides an interface for reading in a JSON file.
 
    If initialized with ``lines=True`` and ``chunksize``, can be iterated over
    ``chunksize`` lines at a time. Otherwise, calling ``read`` reads in the
    whole document.
    NrÔrÕcóÞ—||_||_||_||_||_||_||_|    |_|
|_||_    | |_
||_ | |_ | |_ d|_||_||_d|_||_|jdvrt'd|j›d«‚|jMt)d|jd«|_ |js t'd«‚|jdk(r t'd    «‚|j3t)d
|jd«|_|js t'd «‚t+|t,«r4|js(d |vr$t/j0d t2t5«¬«|jdk(r|js t'd«‚||_y|jdk(r(|j9|«}|j;|«|_yy)Nr>rÕÚpyarrowzThe engine type z is currently not supported.rÍr¨z*chunksize can only be passed if lines=TruerÜz<currently pyarrow engine doesn't support chunksize parameterrÈz&nrows can only be passed if lines=Trueú
ú™Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.©Ú
stacklevelzEcurrently pyarrow engine only supports the line-delimited JSON formatrÕ)rOrÁrºrÂrÃrÄrÅrSrÆrÊrVrIrUrÍÚ
nrows_seenrÈrÇrvrÉrjr4rkryÚwarningsÚwarnÚ FutureWarningrr›Ú_get_data_from_filepathÚ_preprocess_data)r~Úfilepath_or_bufferrOrÁrºrÂrÃrÄrÅrSrÆrUrÍrVrÈrIrÇrÉrÊr›s                    rZrzJsonReader.__init__;sÚ€ð*ˆŒ ؈ŒØˆŒ
Ø(ˆÔØ*ˆÔØ"4ˆÔØ*ˆÔØ"ˆŒØ ˆŒ ؈Œ Ø&ˆÔØ.ˆÔ؈Œ
Ø"ˆŒØˆŒØˆŒ
Ø.ˆÔØ.2ˆŒ Ø*ˆÔà ;‰;Ð2Ñ 2ÜØ" 4§;¡; -Ð/KÐLóð ð >‰>Ð %Ü-¨k¸4¿>¹>È1ÓMˆDŒNØ—:’:Ü Ð!MÓNÐN؏{‰{˜iÒ'Ü ØRóðð :‰:Ð !Ü)¨'°4·:±:¸qÓAˆDŒJØ—:’:Ü Ð!IÓJÐJä Ð)¬3Ô /Ø—J’JØÐ*Ñ*ä M‰MðBôÜ+Ó-õ  ð ;‰;˜)Ò #Ø—:’:Ü ð5óðð+ˆDIØ [‰[˜GÒ #Ø×/Ñ/Ð0BÓCˆDØ×-Ñ-¨dÓ3ˆDIð$r]cóú—t|d«r3|js'|js|5|j«}ddd«t|d«s#|js |jr t    |«}|S#1swYŒ:xYw)a&
        At this point, the data either has a `read` attribute (e.g. a file
        object or a StringIO) or is a string that is a JSON document.
 
        If self.chunksize, we prepare the data for the `__next__` method.
        Otherwise, we read it into memory for the `read` method.
        rØN)ÚhasattrrÍrÈrØr)r~r›s  rZræzJsonReader._preprocess_data‹sa€ô 4˜Ô  ¨$¯.ª.¸D¿JºJØñ #Ø—y‘y“{÷ #ät˜VÔ$¨$¯.ª.¸D¿JºJܘD“>ˆDàˆ ÷  #ð #ús §A1Á1A:có2—t|«}t|t«r!t|«st    |«s t |«rVt |d|j|j|j|j¬«|_ |jj}|St|t«rP|j«jdtd„t D««z«rt |«st#d|›d«‚t%j&dt(t+«¬«|S)    aÝ
        The function read_json accepts three input types:
            1. filepath (string-like)
            2. file-like object (e.g. open file object, StringIO)
            3. JSON string
 
        This method turns (1) into (2) to simplify the rest of the processing.
        It returns input types (2) and (3) unchanged.
 
        It raises FileNotFoundError if the input is a string ending in
        one of .json, .json.gz, .json.bz2, etc. but no such file exists.
        Úr)rÆrVrIÚerrors)ú.jsonc3ó&K—|]    }d|›–—Œ y­w)ríNrL)Ú.0Úcs  rZú    <genexpr>z5JsonReader._get_data_from_filepath.<locals>.<genexpr>¼sèø€Ò"Q°1 U¨1¨#¤;Ñ"Qùs‚zFile z does not existrÞrß)r0rkryr/r-r+r,rÆrVrIrÇrvrrÚlowerÚendswithÚtupler*ÚFileNotFoundErrorrârãrär)r~rçs  rZråz"JsonReader._get_data_from_filepath›s€ô,Ð,>Ó?ÐäÐ-¬sÔ3ÜÐ(Ô)ÜÐ/Ô0ÜÐ-Ô.ä%Ø"ØØŸ™Ø ×,Ñ,Ø $× 4Ñ 4Ø×+Ñ+ô ˆDŒLð"&§¡×!4Ñ!4Ð ð""Ð!ô Ð)¬3Ô /Ø"×(Ñ(Ó*×3Ñ3ØœUÑ"QÔ8PÔ"QÓQÑQôô Ð 2Ô3ä# eÐ,>Ð+?¸Ð$OÓPÐ Pä M‰MðBôÜ+Ó-õ  ð"Ð!r]cóf—ddjd„|D«Dcgc]}|sŒ|‘Œ    c}«›dScc}w)zG
        Combines a list of JSON objects into one JSON object.
        ú[ú,c3ó<K—|]}|j«–—Œy­wrK)Ústrip)rïÚlines  rZrñz,JsonReader._combine_lines.<locals>.<genexpr>Ðsèø€Ò+K¸T¨D¯J©J¯LÑ+Kùs‚ú])Újoin)r~rUrûs   rZÚ_combine_lineszJsonReader._combine_linesËs6€ð
—‘Ñ+KÀUÔ+KÖT 4Êtš$ÒTÓUÐVÐVWÐ Xð    
ùÚTs˜.
 .
có—yrKrLrs rZrØzJsonReader.readÓó€à r]có—yrKrLrs rZrØzJsonReader.read×rr]có—yrKrLrs rZrØzJsonReader.readÛrr]cóT—|5|jdk(rFtd«}|j|j«}t    ||j
¬«cddd«S|jdk(r+|j r·|jr t|«}nº|jrLtt|j|j««}|j|«}|j|«}nbt|j«}|jd«}|j|j|««}n|j|j«}|j
t j"ur&|j%d|j
¬«cddd«S|cddd«S    ddd«y#1swYyxYw)    zA
        Read the whole JSON input into a pandas object.
        rÜz pyarrow.json)rÉNrÕrÝF©Ú infer_objectsrÉ)rÊrrÎr›r'rÉrUrÍr%rÈÚlistrrþÚ_get_object_parserrršrÚ
no_defaultÚconvert_dtypes)r~Ú pyarrow_jsonÚpa_tablerNrUÚ
lines_jsonr›Ú
data_liness        rZrØzJsonReader.readßs^€ð
ñ    Ø{‰{˜iÒ'Ü9¸.ÓI Ø'×1Ñ1°$·)±)Ó<Ü,¨XÀT×EWÑEWÔX÷        ñ    ð
—‘ Ó'Ø—:’:Ø—~’~Ü$ T›l™ØŸšÜ $¤V¨D¯I©I°t·z±zÓ%BÓ C˜Ø%)×%8Ñ%8¸Ó%?˜
Ø"×5Ñ5°jÓA™ä)¨$¯)©)Ó4˜Ø%)§Z¡Z°Ó%5˜
Ø"×5Ñ5°d×6IÑ6IÈ*Ó6UÓV™à×1Ñ1°$·)±)Ó<CØ×%Ñ%¬S¯^©^Ñ;Ø×-Ñ-Ø&+¸4×;MÑ;Mð.ó÷)    ñ    ð0÷1    ñ    ð
(÷     ÷    ñ    úsƒA FÁD&FÆ    FÆF'c    óš—|j}|j}|j|j|j|j|j
|j |j|jdœ}d}|dk(rt|fi|¤Žj«}|dk(s|€/t|t«s||d<t|fi|¤Žj«}|S)z>
        Parses a json document into a pandas object.
        )rOrºrÂrÃrÄrÅrSrÉNrErFrº)rÁrºrOrÂrÃrÄrÅrSrÉÚ FrameParserÚparserkrŒÚ SeriesParser)r~ÚjsonrÁrºÚkwargsrNs      rZrzJsonReader._get_object_parserþsÀ€ðh‰hˆØ—
‘
ˆà—k‘kØ—Z‘ZØ ×-Ñ-Ø!×/Ñ/Ø"&×"9Ñ"9Ø!×/Ñ/ØŸ™Ø!×/Ñ/ñ    
ˆðˆØ 'Š>ܘdÑ- fÑ-×3Ñ3Ó5ˆCà (Š?˜c˜kܘe¤TÔ*Ø"'w‘ܘtÑ. vÑ.×4Ñ4Ó6ˆCàˆ
r]cóR—|j|jj«yy)z©
        If we opened a stream earlier, in _get_data_from_filepath, we should
        close it.
 
        If an open stream or file was passed, we leave it open.
        N)rvÚclosers rZrzJsonReader.closes#€ð <‰<Ð #Ø L‰L× Ñ Õ  ð $r]có—|SrKrLrs rZÚ__iter__zJsonReader.__iter__#ó€Øˆ r]có—yrKrLrs rZÚ__next__zJsonReader.__next__&rr]có—yrKrLrs rZrzJsonReader.__next__*rr]có—yrKrLrs rZrzJsonReader.__next__.rr]cóš—|jr/|j|jk\r|j«t‚t    t |j |j««}|s|j«t‚    |j|«}|j|«}t|j|jt|«z«|_ |xjt|«z c_|jtj ur|j#d|j¬«S|S#t$r}|j«|‚d}~wwxYw)NFr)rÈrárÚ StopIterationrrr›rÍrþrÚrangerµrWÚ    ExceptionrÉrrr    )r~rUr rNÚexs     rZrzJsonReader.__next__2s€Ø :Š:˜$Ÿ/™/¨T¯Z©ZÒ7Ø J‰JŒLÜÐ ä”V˜DŸI™I t§~¡~Ó6Ó7ˆÙØ J‰JŒLÜÐ ð        Ø×,Ñ,¨UÓ3ˆJØ×)Ñ)¨*Ó5ˆCô˜dŸo™o¨t¯©ÄÀSÃÑ/IÓJˆCŒIØ OŠOœs 3›xÑ 'Oð
× Ñ ¤S§^¡^Ñ 3Ø×%Ñ%Ø#°4×3EÑ3Eð&óð ðˆJøôò    Ø J‰JŒL؈Hûð    úsÁ>A1D*Ä*    E
Ä3EÅE
có—|SrKrLrs rZÚ    __enter__zJsonReader.__enter__Nrr]có$—|j«yrK)r)r~Úexc_typeÚ    exc_valueÚ    tracebacks    rZÚ__exit__zJsonReader.__exit__Qs €ð      
‰
 r])rÁrDrÂú bool | NonerÄrŒrÅrŒrUrŒrÍú
int | NonerVr8rÈr*rIúStorageOptions | NonerÇrŠrÉúDtypeBackend | lib.NoDefaultrÊr=rŽrr‘)r~úJsonReader[Literal['frame']]rŽr)r~úJsonReader[Literal['series']]rŽr!)r~z&JsonReader[Literal['frame', 'series']]rŽúDataFrame | Series)rŽr/r)rŽr@)r%ztype[BaseException] | Noner&zBaseException | Noner'zTracebackType | NonerŽr)r“r”r•Ú__doc__rrrrærårþrrØrrrrr#r(rLr]rZr×r×2s€„ñð026Ø&.Ø69·n±nØ$ð'N4ðð    N4ð "ð N4ð!ðN4ððN4ððN4ððN4ð(ðN4ððN4ð /ð!N4ð"$ð#N4ð$4ð%N4ð&ð'N4ð(
ó)N4ò`ò ."ó`
ðò óð ðò óð ðò óð óó>ó6!óðò óð ðò óð ðò óð óó8ðà,ðð(ðð(ð    ð
 
ô r]r×có—eZdZUded<ded<dZdddd    dœZded
<d d d d d d ejf                                                            dd„Ze    dd„«Z
e    d„«Z dd„Z e    dd„«Z dd„Ze                d                                            dd„«Ze    dd„«Zy )ÚParserztuple[str, ...]Ú _split_keysryrz)ruÚmsÚusÚnsi€3ál,b/l`'ºrlF[L'€rNTFc
ón—||_|€ |j}||_||_|K|j    «}||j
vrt d|j
›«‚|j||_n|jd|_||_    ||_
||_ ||_ ||_ d|_|    |_y)Nzdate_unit must be one of ru)rrzrOrºròÚ _STAMP_UNITSrjÚ _MIN_STAMPSÚ    min_stamprÅrÂrÃrSrÄrNrÉ)
r~rrOrºrÂrÃrÄrÅrSrÉs
          rZrzParser.__init__gs½€ðˆŒ    à ˆ>Ø×)Ñ)ˆFàˆŒ àˆŒ
à Ð  Ø!Ÿ™Ó)ˆIØ × 1Ñ 1Ñ1Ü Ð#<¸T×=NÑ=NÐ<OÐ!PÓQÐQØ!×-Ñ-¨iÑ8ˆDNà!×-Ñ-¨cÑ2ˆDŒNà*ˆÔØ(ˆÔØ*ˆÔØ"ˆŒØ"4ˆÔØ.2ˆŒØ*ˆÕr]có¼—t|j««jt|j««}|rdj    |«}t d|›«‚y)zT
        Checks that dict has only the appropriate keys for orient='split'.
        z, z!JSON data had unexpected key(s): N)r³ÚkeysÚ
differencer3rýrj)r~ÚdecodedÚbad_keysÚbad_keys_joineds    rZÚcheck_keys_splitzParser.check_keys_splitŒsT€ô
w—|‘|“~Ó&×1Ñ1´#°d×6FÑ6FÓ2GÓHˆÙ Ø"Ÿi™i¨Ó1ˆOÜÐ@ÀÐ@QÐRÓSÐ Sð r]có¬—|j«|j€y|jr|j«|j    «|jSrK)Ú_parserNrÂÚ _convert_axesÚ_try_convert_typesrs rZrz Parser.parse–sB€à  ‰ Œ à 8‰8Ð ØØ × Ò Ø × Ñ Ô  Ø ×ÑÔ!؏x‰xˆr]có—t|«‚rKrrs rZrCz Parser._parse¡r‚r]có.—|j}|€J‚|jD]v}|j|«}t||jd¬«}|j ||ddd¬«\}}|sŒHt ||jd¬«}t|j||«Œxy)z&
        Try to convert axes.
        NF)rºr·T)rhr›Ú
use_dtypesrÃÚis_axis)rNÚ _AXIS_ORDERSÚ    _get_axisr!rºÚ_try_convert_datarÚsetattr)r~rNÚ    axis_nameÚaxÚserÚnew_serÚresultÚnew_axiss        rZrDzParser._convert_axes¤s›€ð
h‰hˆØˆÐˆØ×)Ñ)ò     7ˆIØ—‘˜yÓ)ˆBܘ 2§8¡8°%Ô8ˆCØ"×4Ñ4ØØØ Ø"Øð 5ó‰OˆGVòÜ  °· ± ÀEÔJÜ˜Ÿ™ )¨XÕ6ñ     7r]có—t|«‚rKrrs rZrEzParser._try_convert_types¹r‚r]cóV—|ræ|jsttt|««r|dfStj«5tj
ddt ¬«|jtj«}ddd«|dfS|jdurnWt|jt«r|jj|«n |j}|    |j|«dfS|r|j!|«\}}    |    r|dfSd}
|j"t$j&ur|s|dfSt)|j«r    |jd«}d}
|jj*dk(r#|jdk7r    |jd«}d}
t-|«r7|jd    vr)    |jd
«}||k(j«r|}d}
|jd k(r#|jd
k7r    |jd
«}d}
|d k(rt-|«r|j0d k(r|dfS||
fS#1swYdfSxYw#ttf$r|dfcYSwxYw#ttf$rYŒwxYw#ttf$rYŒêwxYw#ttt.f$rYŒÂwxYw#ttf$rYŒ¥wxYw)zI
        Try to parse a Series into a column by inferring dtype.
        FÚignorezDowncasting object dtype arrays©ÚcategoryNTÚfloat64Úf)ÚfloatÚobjectÚint64r‹rWrš)rºÚallr#râÚcatch_warningsÚfilterwarningsräÚfillnaÚnpÚnanrkÚdictÚgetÚastypeÚ    TypeErrorrjÚ_try_convert_to_daterÉrrrÚkindrµÚ OverflowErrorrO) r~rhr›rHrÃrIÚfilledrºÚnew_datarRÚ    converteds            rZrLzParser._try_convert_data¼s¥€ñ Ø—:’:Ü”u˜T“{Ô#Ø ˜;Ð&ä×,Ñ,Ó.ñ1Ü×+Ñ+Ø Ø9Ü!.õð
"Ÿ[™[¬¯©Ó0F÷ 1ð˜t|Ð#à—‘˜tÑ#Øô-7°t·z±zÄ4Ô,HD—J‘J—N‘N 4Ô(ÈdÏjÉjððÐ$ð+Ø#Ÿ{™{¨5Ó1°4Ð7Ð7ñ Ø#×8Ñ8¸Ó>Ñ ˆHfÙØ ~Ð%àˆ    Ø × Ñ ¤S§^¡^Ñ 3¹Gà˜:Ð Ü ˜TŸZ™ZÔ (ð Ø—{‘{ 9Ó-Ø     ð :‰:?‰?˜cÒ ! d§j¡j°IÒ&=ð Ø—{‘{ 9Ó-Ø     ô
ˆtŒ9˜Ÿ™Ð':Ñ:ð ØŸ;™; wÓ/Ø Ñ$×)Ñ)Ô+Ø#DØ $Ið :‰:˜Ò  4§:¡:°Ò#8ð Ø—{‘{ 7Ó+Ø     ð
7Š?œs 4œy؏{‰{˜gÒ%ؘU{Ð"àYˆÐ÷Q1ð˜t|Ð#ûô&¤zÐ2ò+Ø# U˜{Ò*ð+ûô"œzÐ*ò Úð ûôœzÐ*ò Ùð ûôœz¬=Ð9ò Ùð ûôœzÐ*ò Ùð úse»<H)ÃH8Ä?IÅ;I'Æ((I<Ç/JÈ)H5È8IÉ IÉI$É#I$É'I9É8I9É<JÊJÊJ(Ê'J(có2—t|«s|dfS|}|jdk(r|jt«}|jdk(r    |jd«}t|jjtj«rMt|j«||jkDz|jtk(z}|j«s|dfS|j r |j fn |j"}|D]O}    t%j&«5t%j(ddt*¬«t-|d|¬    «}d
d
d
«|d fcS|dfS#t$r|dfcYSt
t f$rYŒwxYw#1swYŒ8xYw#t tt
f$rYŒœwxYw) zÌ
        Try to parse a ndarray like into a date column.
 
        Try to coerce object in epoch/iso formats and integer/float in epoch
        formats. Return a boolean if parsing was successful.
        FÚstringr\r]rVz=.*parsing datetimes with mixed time zones will raise an errorrWÚraise)rìÚunitNT)rµrºrfr\rjrgrjÚ
issubclassÚtyperbÚnumberr"Ú_valuesr:rr^rSr8râr_r`rär$)r~r›rlÚin_rangeÚ
date_unitsrSs      rZrhzParser._try_convert_to_dates’€ô4Œyؘ;Ð àˆà >‰>˜XÒ %Ø—‘¤vÓ.ˆHà >‰>˜XÒ %ð ØŸ;™; wÓ/ô h—n‘n×)Ñ)¬2¯9©9Ô 5äX×%Ñ%Ó&ؘdŸn™nÑ,ñ.à×#Ñ#¤tÑ+ñ-ð ð
—<‘<”>ؘU{Ð"à*.¯.ª.d—n‘nÑ&¸d×>OÑ>Oˆ
Ø#ò     "ˆIð
Ü×,Ñ,Ó.ñUÜ×+Ñ+Ø ð4ä!.õ    ô  +¨8¸GÈ)ÔTH÷Uð˜T>Ò !ð     "ðUˆ{Ðøô;!ò #ؘU{Ò"ÜœzÐ*ò Úð ú÷ UðUûô¤ ¬yÐ9ò Ùð úsBÁEÃ=E?Ä+E3Ä<E?Å E0ÅE0Å/E0Å3E<    Å8E?Å?FÆF)rryrºúDtypeArg | NonerÂrŒrÃúbool | list[str]rÄrŒrÅrŒrÉr,rŽr)r>rdrŽrr)TTF) rhr5r›r!rHrŒrÃryrIrŒrŽútuple[Series, bool])r›r!rŽrz)r“r”r•r–r8r9rrrrrArrCrDrErLrhrLr]rZr2r2ZsZ…Ø Ó ØÓà*€Là ØØØñ    €Kð ƒIð "&Ø!Ø*.Ø#(Ø#ØØ69·n±nð#+àð#+ðð    #+ð
ð #+ð (ð #+ð!ð#+ðð#+ð4ð#+ð
ó#+ðJ òTó ðTð ñó ðó(ð ò7ó ð7ó((ð ð
 Ø*.Øð YàðYððYðð    Yð
(ð Yð ð Yð
òYó ðYðv ò0ó ñ0r]r2có0—eZdZUdZdZded<dd„Zdd„Zy)    rrW)rhrWr›z Series | NonerNcó,—t|j|j¬«}|jdk(rN|j    «Dcic]\}}t |«|“Œ}}}|j |«tdi|¤Ž|_yt|«|_ycc}}w)N©rÅršrL)    rrrÅrOÚitemsryrAr!rN)r~r›ÚkÚvr>s     rZrCzSeriesParser._parseQsv€Ü˜4Ÿ9™9°D×4FÑ4FÔGˆà ;‰;˜'Ò !Ø-1¯Z©Z«\×:¡T Q¨”s˜1“v˜q‘yÐ:ˆGÑ:Ø × !Ñ ! 'Ô *ÜÑ( Ñ(ˆDHä˜d“|ˆDHùó    ;sÁBcóˆ—|j€y|jd|j|j¬«\}}|r||_yy)Nr›©rÃ)rNrLrÃ)r~rNrRs   rZrEzSeriesParser._try_convert_types[sJ€Ø 8‰8Ð Ø Ø×,Ñ,Ø D—H‘H¨D×,>Ñ,>ð-ó
‰ ˆˆVñ ؈DHð r]Nr)r“r”r•rzr3r–rCrErLr]rZrrLs…Ø€OØ+€KØ    Óó$ôr]rcóN—eZdZUdZdZded<d
d„Z    d                     d d„Zd
d„Zd
d    „Z    y) rrd)rdrWr›zDataFrame | NonerNcó—|j}|j}|dk(r(tt||j¬«d¬«|_y|dk(r«t||j¬«j «Dcic]\}}t|«|“Œ}}}|j|«|dDcgc]}t|t«r t|«n|‘Œ!}}t|t|d««|d<td    ddi|¤Ž|_y|dk(r3tjt||j¬«dd¬«|_y|dk(rt||j¬«|_ytt||j¬«d¬«|_ycc}}wcc}w)
Nrdr})rºršrºrW)rºrOrgrL)rrOrrrÅrNr~ryrArkrrôr)r.Ú    from_dictr3)r~rrOrr€r>ÚcolÚ
orig_namess        rZrCzFrameParser._parsejsu€Øy‰yˆØ—‘ˆà YÒ Ü Ü˜D°×0BÑ0BÔCÈ4ôˆDHðwÒ ô(¨¸D×<NÑ<NÔO×UÑUÓW÷áAqôA“˜‘    ðˆGñð × !Ñ ! 'Ô *ð# 9Ñ-öàô *¨#¬tÔ4”s”¸#Ñ=ðˆJðô"-ØÜ(¨°TÓ:ó"ˆGIÑ ô!Ñ7 tÐ7¨wÑ7ˆDHØ wÒ Ü ×*Ñ*ܘD°×0BÑ0BÔCØØôˆDHð
wÒ Ü)¨$¸d×>PÑ>PÔQˆDHä Ü˜D°×0BÑ0BÔCÈ4ôˆDHùó/ùò
s Á3E8Â$$E>Ncó —|€d„}|j}|€J‚d}i}t|j««D]'\}\}}||«r|||«\}    }
|
r|    }d}|||<Œ)|r0t||j¬«} |j
| _| |_yy)zM
        Take a conversion function and possibly recreate the frame.
        Ncó—y)NTrL)r†s rZr®z0FrameParser._process_converter.<locals>.<lambda>—rˆr]FTr¦)rNÚ    enumerater~rrWrd) r~rZÚfiltrNÚ needs_new_objÚnew_objÚir†rðrlrRÚ    new_frames             rZÚ_process_converterzFrameParser._process_converterŽs§€ð ˆ<Ù#ˆDàh‰hˆØˆÐˆàˆ ؈Ü$ S§Y¡Y£[Ó1ò    ‰KˆA‰xQِCŒyÙ#$ S¨!£9Ñ ˜&ÙØ AØ$(M؈GAŠJð     ñ ä! '°·±Ô;ˆIØ #§ ¡ ˆIÔ Ø ˆDHð     r]c󀇗‰j€y‰jr‰j«‰jˆfd„«y)Ncó,•—‰j||d¬«S)NFr‚)rL©r†rðr~s  €rZr®z0FrameParser._try_convert_types.<locals>.<lambda>³sø€˜4×1Ñ1°#°qÈÐ1ÓN€r])rNrÃÚ_try_convert_datesrrs`rZrEzFrameParser._try_convert_types¬s6ø€Ø 8‰8Ð Ø Ø × Ò Ø × #Ñ #Ô %à ×ÑÛ Nõ    
r]c󮇇—‰j€y‰j}t|t«rg}t    |«Šdˆˆfd„ }‰j ˆfd„|¬«y)NcóЕ—|‰vry‰jsyt|t«sy|j«}|j    d«s |dk(s|dk(s|dk(s|j d«ryy)zK
            Return if this col is ok to try for a date parse.
            TF)Ú_atÚ_timeÚmodifiedÚdateÚdatetimeÚ    timestamp)rÄrkryròróÚ
startswith)r†Ú    col_lowerrÃr~s  €€rZÚis_okz-FrameParser._try_convert_dates.<locals>.is_okÀsoø€ðmÑ#ØØ×*Ò*ØÜ˜c¤3Ô'ØàŸ    ™    › ˆIà×"Ñ"Ð#3Ô4Ø 
Ò*Ø Ò&Ø 
Ò*Ø×'Ñ'¨ Ô4àØr]có&•—‰j|«SrK)rhr“s  €rZr®z0FrameParser._try_convert_dates.<locals>.<lambda>Ösø€¨t×/HÑ/HÈÓ/K€r])r‹)rŽrŒ)rNrÃrkrŒr³r)r~Úconvert_dates_list_boolrŸrÃs`  @rZr”zFrameParser._try_convert_dates¶sVù€Ø 8‰8Ð Ø ð#'×"4Ñ"4ÐÜ Ð-¬tÔ 4Ø&(Ð #ÜÐ3Ó4ˆ ö    ð,     ×ÑÓ KÐRWÐÕXr]rrK)rZz1Callable[[Hashable, Series], tuple[Series, bool]]r‹z!Callable[[Hashable], bool] | NonerŽr)
r“r”r•rzr3r–rCrrEr”rLr]rZrresI…Ø€OØ.€KØ    Óó"ðN37ð!à <ð!ð0ð!ð
ó    !ó<
ô Yr]r) ............)rHz0FilePath | WriteBuffer[str] | WriteBuffer[bytes]rNrCrOrŠrPryrQr‹rRrŒrSryrTrrUrŒrVr8rWr)rXr‹rIrArYúLiteral['a', 'w']rŽr)rHrrNrCrOrŠrPryrQr‹rRrŒrSryrTrrUrŒrVr8rWr)rXr‹rIrArYr¢rŽry) NÚepoché
Tr4NFr_NrNrf)rHz7FilePath | WriteBuffer[str] | WriteBuffer[bytes] | NonerNrCrOrŠrPryrQr‹rRrŒrSryrTrrUrŒrVr8rWr)rXr‹rIr+rYr¢rŽrŠ)&rHú.FilePath | ReadBuffer[str] | ReadBuffer[bytes]rOrŠrÁúLiteral['frame']rºrxrÂr)rÃryrÄrŒrÅrŒrSrŠrÆrŠrÇrŠrUrŒrÍr‹rVr8rÈr*rIrArÉr,rÊr=rŽr-)&rHr¥rOrŠrÁúLiteral['series']rºrxrÂr)rÃryrÄrŒrÅrŒrSrŠrÆrŠrÇrŠrUrŒrÍr‹rVr8rÈr*rIrArÉr,rÊr=rŽr.)&rHr¥rOrŠrÁr§rºrxrÂr)rÃryrÄrŒrÅrŒrSrŠrÆrŠrÇrŠrUrŒrÍrrVr8rÈr*rIrArÉr,rÊr=rŽr!)&rHr¥rOrŠrÁr¦rºrxrÂr)rÃryrÄrŒrÅrŒrSrŠrÆrŠrÇrŠrUrŒrÍrrVr8rÈr*rIrArÉr,rÊr=rŽr)&rHr¥rOrŠrÁzLiteral['frame', 'series']rºrxrÂr)rÃryrÄrŒrÅrŒrSrŠrÆrŠrÇrŠrUrŒrÍr*rVr8rÈr*rIr+rÉr,rÊr=rŽzDataFrame | Series | JsonReader)kÚ
__future__rrrrÚ collectionsÚiorÚ    itertoolsrÚtypingr    r
r r r rrrrâÚnumpyrbÚ pandas._libsrÚpandas._libs.jsonrrÚpandas._libs.tslibsrÚpandas.compat._optionalrÚ pandas.errorsrÚpandas.util._decoratorsrÚpandas.util._exceptionsrÚpandas.util._validatorsrÚpandas.core.dtypes.commonrrÚpandas.core.dtypes.dtypesrÚpandasrrr r!r"r#r$Úpandas.core.reshape.concatr%Úpandas.core.shared_docsr&Úpandas.io._utilr'Úpandas.io.commonr(r)r*r+r,r-r.r/r0Úpandas.io.json._normalizer1Úpandas.io.json._table_schemar2r3Úpandas.io.parsers.readersr4Úcollections.abcr5r6Útypesr7Úpandas._typingr8r9r:r;r<r=r>r?r@rArBÚpandas.core.genericrCrDr[rxrnrormrÎrÚIteratorr×r2rrrLr]rZú<module>rÅsèðÝ"÷õÝÝ÷    ÷    ó    óãå÷õ%Ý>Ý-Ý'Ý4Ý7÷õ2÷÷ñõ.Ý0å1÷
÷
õ
õ?÷õ7á÷õ$÷ ÷ ÷ ñ õ,áÐ+°7Ð;LÑ3MÔN€ð
ðØØØØØ@CØØ&)ØØØ&)Ø!ðØAðà    ðð ððð    ð
ð ð ð ððð>ðð ðð$ðð ðð ðð$ðð ðð
òó
ðð&
ðØØØØØ@CØØ&)ØØØ&)Ø!ðØðà    ðð ððð    ð
ð ð ð ððð>ðð ðð$ðð ðð ðð$ðð ðð    òó
ðð,ØØØØØ@DØØ&-ØØØ-1Ø!ðSØHðSà    ðSð ðSðð    Sð
ð Sð ð SððSð>ðSð ðSð$ðSð ðSð ðSð+ðSð ðSðóSôl3.ˆSô3.ôl X6ô Xô&ôô<M9kôM9ð`
ðØØ Ø #Ø&)Ø"ØØØØ"%Øà&)ØØ&)Ø25Øñ'Ø?ðð ðð
ð    ð
ð ð ð ð$ðððððððððð ðð ðððð$ðð  ð!ð"$ð#ð$0ð%ð& ð'ð("ò)ó
ðð0
ðà Ø #Ø&)Ø"ØØØØ"%Øà&)ØØ&)Ø25Øñ'Ø?ðð ðð
ð    ð
ð ð ð ð$ðððððððððð ðð ðððð$ðð  ð!ð"$ð#ð$0ð%ð& ð'ð(#ò)ó
ðð0
ðà Ø #Ø&)Ø"ØØØØ"%ØØØ&)ØØ&)Ø25Øñ'Ø?ðð ðð
ð    ð
ð ð ð ð$ðððððððððð ðð ðððð$ðð  ð!ð"$ð#ð$0ð%ð& ð'ð( ò)ó
ðð0
ðØØ Ø #Ø&)Ø"ØØØØ"%ØØØ&)ØØ&)Ø25Øñ'Ø?ðð ðð
ð    ð
ð ð ð ð$ðððððððððð ðð ðððð$ðð  ð!ð"$ð#ð$0ð%ð& ð'ð(ò)ó
ðñ0Ø Ð!2Ñ3Ø&Ð'>Ñ?À-ÑOôðØ&-Ø!Ø $Ø&*Ø#ØØ ØØ"*ØØ Ø&-ØØ-1Ø25·.±.Ø ñ'r"Ø?ðr"ð ðr"ð
$ð    r"ð
ð r"ð ð r"ð$ðr"ððr"ððr"ððr"ððr"ð ðr"ð ðr"ððr"ð$ðr"ð  ð!r"ð"+ð#r"ð$0ð%r"ð& ð'r"ð(%ò)r"ó    ðr"ôj    e—‘˜w Ñ7ôe÷P    oñoôd6ôô2qY&õqYr]