@@ -33,7 +33,7 @@ def test_build_table_schema(self):
33
33
{'name' : 'C' , 'type' : 'datetime' },
34
34
{'name' : 'D' , 'type' : 'duration' },
35
35
],
36
- 'primaryKey' : 'idx'
36
+ 'primaryKey' : [ 'idx' ]
37
37
}
38
38
self .assertEqual (result , expected )
39
39
result = build_table_schema (self .df )
@@ -44,7 +44,7 @@ def test_series(self):
44
44
result = build_table_schema (s , version = False )
45
45
expected = {'fields' : [{'name' : 'index' , 'type' : 'integer' },
46
46
{'name' : 'foo' , 'type' : 'integer' }],
47
- 'primaryKey' : 'index' }
47
+ 'primaryKey' : [ 'index' ] }
48
48
self .assertEqual (result , expected )
49
49
result = build_table_schema (s )
50
50
self .assertTrue ('pandas_version' in result )
@@ -53,7 +53,7 @@ def tets_series_unnamed(self):
53
53
result = build_table_schema (pd .Series ([1 , 2 , 3 ]), version = False )
54
54
expected = {'fields' : [{'name' : 'index' , 'type' : 'integer' },
55
55
{'name' : 'values' , 'type' : 'integer' }],
56
- 'primaryKey' : 'index' }
56
+ 'primaryKey' : [ 'index' ] }
57
57
self .assertEqual (result , expected )
58
58
59
59
def test_multiindex (self ):
@@ -197,7 +197,7 @@ def test_build_series(self):
197
197
OrderedDict ([('name' , 'a' ), ('type' , 'integer' )])]
198
198
schema = OrderedDict ([
199
199
('fields' , fields ),
200
- ('primaryKey' , 'id' ),
200
+ ('primaryKey' , [ 'id' ] ),
201
201
])
202
202
203
203
expected = OrderedDict ([
@@ -236,7 +236,7 @@ def test_to_json(self):
236
236
237
237
schema = OrderedDict ([
238
238
('fields' , fields ),
239
- ('primaryKey' , 'idx' ),
239
+ ('primaryKey' , [ 'idx' ] ),
240
240
])
241
241
data = [
242
242
OrderedDict ([('idx' , 0 ), ('A' , 1 ), ('B' , 'a' ),
@@ -280,7 +280,7 @@ def test_to_json_float_index(self):
280
280
('type' , 'number' )]),
281
281
OrderedDict ([('name' , 'values' ),
282
282
('type' , 'integer' )])]),
283
- ('primaryKey' , 'index' )])),
283
+ ('primaryKey' , [ 'index' ] )])),
284
284
('data' ,
285
285
[OrderedDict ([('index' , 1.0 ), ('values' , 1 )]),
286
286
OrderedDict ([('index' , 2.0 ), ('values' , 1 )])])])
@@ -302,7 +302,7 @@ def test_to_json_period_index(self):
302
302
('freq' , 'Q-JAN' )]),
303
303
OrderedDict ([('name' , 'values' ),
304
304
('type' , 'integer' )])]),
305
- ('primaryKey' , 'index' )])),
305
+ ('primaryKey' , [ 'index' ] )])),
306
306
('data' , [
307
307
OrderedDict ([('index' ,
308
308
'2015-11-01T00:00:00.000Z' ),
@@ -330,7 +330,7 @@ def test_to_json_categorical_index(self):
330
330
('ordered' , False )]),
331
331
OrderedDict ([('name' , 'values' ),
332
332
('type' , 'integer' )])]),
333
- ('primaryKey' , 'index' )])),
333
+ ('primaryKey' , [ 'index' ] )])),
334
334
('data' , [
335
335
OrderedDict ([('index' , 'a' ),
336
336
('values' , 1 )]),
@@ -418,7 +418,7 @@ def test_categorical(self):
418
418
419
419
expected = OrderedDict ([
420
420
('schema' , OrderedDict ([
421
- ('fields' , fields ), ('primaryKey' , 'idx' )])),
421
+ ('fields' , fields ), ('primaryKey' , [ 'idx' ] )])),
422
422
('data' , [OrderedDict ([('idx' , 0 ), ('values' , 'a' )]),
423
423
OrderedDict ([('idx' , 1 ), ('values' , 'b' )]),
424
424
OrderedDict ([('idx' , 2 ), ('values' , 'a' )])])])
@@ -453,3 +453,11 @@ def test_set_default_names_mi_partion(self):
453
453
names = ['n1' , None ]))
454
454
result = _set_default_names (data )
455
455
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