@@ -33,7 +33,7 @@ def test_build_table_schema(self):
3333 {'name' : 'C' , 'type' : 'datetime' },
3434 {'name' : 'D' , 'type' : 'duration' },
3535 ],
36- 'primaryKey' : 'idx'
36+ 'primaryKey' : [ 'idx' ]
3737 }
3838 self .assertEqual (result , expected )
3939 result = build_table_schema (self .df )
@@ -44,7 +44,7 @@ def test_series(self):
4444 result = build_table_schema (s , version = False )
4545 expected = {'fields' : [{'name' : 'index' , 'type' : 'integer' },
4646 {'name' : 'foo' , 'type' : 'integer' }],
47- 'primaryKey' : 'index' }
47+ 'primaryKey' : [ 'index' ] }
4848 self .assertEqual (result , expected )
4949 result = build_table_schema (s )
5050 self .assertTrue ('pandas_version' in result )
@@ -53,7 +53,7 @@ def tets_series_unnamed(self):
5353 result = build_table_schema (pd .Series ([1 , 2 , 3 ]), version = False )
5454 expected = {'fields' : [{'name' : 'index' , 'type' : 'integer' },
5555 {'name' : 'values' , 'type' : 'integer' }],
56- 'primaryKey' : 'index' }
56+ 'primaryKey' : [ 'index' ] }
5757 self .assertEqual (result , expected )
5858
5959 def test_multiindex (self ):
@@ -197,7 +197,7 @@ def test_build_series(self):
197197 OrderedDict ([('name' , 'a' ), ('type' , 'integer' )])]
198198 schema = OrderedDict ([
199199 ('fields' , fields ),
200- ('primaryKey' , 'id' ),
200+ ('primaryKey' , [ 'id' ] ),
201201 ])
202202
203203 expected = OrderedDict ([
@@ -236,7 +236,7 @@ def test_to_json(self):
236236
237237 schema = OrderedDict ([
238238 ('fields' , fields ),
239- ('primaryKey' , 'idx' ),
239+ ('primaryKey' , [ 'idx' ] ),
240240 ])
241241 data = [
242242 OrderedDict ([('idx' , 0 ), ('A' , 1 ), ('B' , 'a' ),
@@ -280,7 +280,7 @@ def test_to_json_float_index(self):
280280 ('type' , 'number' )]),
281281 OrderedDict ([('name' , 'values' ),
282282 ('type' , 'integer' )])]),
283- ('primaryKey' , 'index' )])),
283+ ('primaryKey' , [ 'index' ] )])),
284284 ('data' ,
285285 [OrderedDict ([('index' , 1.0 ), ('values' , 1 )]),
286286 OrderedDict ([('index' , 2.0 ), ('values' , 1 )])])])
@@ -302,7 +302,7 @@ def test_to_json_period_index(self):
302302 ('freq' , 'Q-JAN' )]),
303303 OrderedDict ([('name' , 'values' ),
304304 ('type' , 'integer' )])]),
305- ('primaryKey' , 'index' )])),
305+ ('primaryKey' , [ 'index' ] )])),
306306 ('data' , [
307307 OrderedDict ([('index' ,
308308 '2015-11-01T00:00:00.000Z' ),
@@ -330,7 +330,7 @@ def test_to_json_categorical_index(self):
330330 ('ordered' , False )]),
331331 OrderedDict ([('name' , 'values' ),
332332 ('type' , 'integer' )])]),
333- ('primaryKey' , 'index' )])),
333+ ('primaryKey' , [ 'index' ] )])),
334334 ('data' , [
335335 OrderedDict ([('index' , 'a' ),
336336 ('values' , 1 )]),
@@ -418,7 +418,7 @@ def test_categorical(self):
418418
419419 expected = OrderedDict ([
420420 ('schema' , OrderedDict ([
421- ('fields' , fields ), ('primaryKey' , 'idx' )])),
421+ ('fields' , fields ), ('primaryKey' , [ 'idx' ] )])),
422422 ('data' , [OrderedDict ([('idx' , 0 ), ('values' , 'a' )]),
423423 OrderedDict ([('idx' , 1 ), ('values' , 'b' )]),
424424 OrderedDict ([('idx' , 2 ), ('values' , 'a' )])])])
@@ -453,3 +453,11 @@ def test_set_default_names_mi_partion(self):
453453 names = ['n1' , None ]))
454454 result = _set_default_names (data )
455455 self .assertEqual (result .index .names , ['n1' , 'level_1' ])
456+
457+ def test_timestamp_in_columns (self ):
458+ df = pd .DataFrame ([[1 , 2 ]], columns = [pd .Timestamp ('2016' ),
459+ pd .Timedelta (10 , unit = 's' )])
460+ result = df .to_json (orient = "table" )
461+ js = json .loads (result )
462+ assert js ['schema' ]['fields' ][1 ]['name' ] == '2016-01-01T00:00:00'
463+ assert js ['schema' ]['fields' ][2 ]['name' ] == 'P0DT0H0M10S'
0 commit comments