@@ -1139,90 +1139,70 @@ def roundtrip(s, encoding='latin-1'):
11391139 for s in examples :
11401140 roundtrip (s )
11411141
1142- def test_data_frame_size_after_to_json (self ):
1143- # GH15344
1144- df = DataFrame ({'a' : [str (1 )]})
1145-
1146- size_before = df .memory_usage (index = True , deep = True ).sum ()
1147- df .to_json ()
1148- size_after = df .memory_usage (index = True , deep = True ).sum ()
1149-
1150- assert size_before == size_after
1151-
1152- def test_index_false_to_json (self ):
1142+ def test_data_frame_size_after_to_json (self ):
1143+ # GH15344
1144+ df = DataFrame ({'a' : [str (1 )]})
1145+
1146+ size_before = df .memory_usage (index = True , deep = True ).sum ()
1147+ df .to_json ()
1148+ size_after = df .memory_usage (index = True , deep = True ).sum ()
1149+
1150+ assert size_before == size_after
1151+
1152+ @pytest .mark .parametrize ('data, expected' , [
1153+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ]),
1154+ {'columns' : ['a' , 'b' ], 'data' : [[1 , 2 ], [4 , 5 ]]}),
1155+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ]).rename_axis ('foo' ),
1156+ {'columns' : ['a' , 'b' ], 'data' : [[1 , 2 ], [4 , 5 ]]}),
1157+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ],
1158+ index = [['a' , 'b' ], ['c' , 'd' ]]),
1159+ {'columns' : ['a' , 'b' ], 'data' : [[1 , 2 ], [4 , 5 ]]}),
1160+ (Series ([1 , 2 , 3 ], name = 'A' ),
1161+ {'name' : 'A' , 'data' : [1 , 2 , 3 ]}),
1162+ (Series ([1 , 2 , 3 ], name = 'A' ).rename_axis ('foo' ),
1163+ {'name' : 'A' , 'data' : [1 , 2 , 3 ]}),
1164+ (Series ([1 , 2 ], name = 'A' , index = [['a' , 'b' ], ['c' , 'd' ]]),
1165+ {'name' : 'A' , 'data' : [1 , 2 ]}),
1166+ ])
1167+ def test_index_false_to_json_split (self , data , expected ):
11531168 # GH 17394
1154- # Testing index parameter in to_json
1169+ # Testing index=False in to_json with orient='split'
11551170
1156- # Testing DataFrame.to_json(orient='split', index=False)
1157- df = pd .DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ])
1158-
1159- result = df .to_json (orient = 'split' , index = False )
1171+ result = data .to_json (orient = 'split' , index = False )
11601172 result = json .loads (result )
11611173
1162- expected = {
1163- 'columns' : ['a' , 'b' ],
1164- 'data' : [[1 , 2 ], [4 , 5 ]]
1165- }
1166-
11671174 assert result == expected
11681175
1169- # Testing DataFrame.to_json(orient='table', index=False)
1170- result = df .to_json (orient = 'table' , index = False )
1171- result = json .loads (result )
1172-
1173- schema = {
1174- 'fields' : [{'name' : 'a' , 'type' : 'integer' },
1175- {'name' : 'b' , 'type' : 'integer' }],
1176- 'pandas_version' : '0.20.0'
1177- }
1178-
1179- expected = {
1180- 'schema' : schema ,
1181- 'data' : [{'a' : 1 , 'b' : 2 }, {'a' : 4 , 'b' : 5 }]
1182- }
1183-
1184- assert result == expected
1185-
1186- # Testing Series.to_json(orient='split', index=False)
1187- s = pd .Series ([1 , 2 , 3 ], name = 'A' )
1188-
1189- result = s .to_json (orient = 'split' , index = False )
1190- result = json .loads (result )
1191-
1192- expected = {
1193- 'name' : 'A' ,
1194- 'data' : [1 , 2 , 3 ]
1195- }
1196-
1197- assert result == expected
1176+ @pytest .mark .parametrize ('data' , [
1177+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ])),
1178+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ]).rename_axis ('foo' )),
1179+ (DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ],
1180+ index = [['a' , 'b' ], ['c' , 'd' ]])),
1181+ (Series ([1 , 2 , 3 ], name = 'A' )),
1182+ (Series ([1 , 2 , 3 ], name = 'A' ).rename_axis ('foo' )),
1183+ (Series ([1 , 2 ], name = 'A' , index = [['a' , 'b' ], ['c' , 'd' ]])),
1184+ ])
1185+ def test_index_false_to_json_table (self , data ):
1186+ # GH 17394
1187+ # Testing index=False in to_json with orient='table'
11981188
1199- # Testing Series.to_json(orient='table', index=False)
1200- result = s .to_json (orient = 'table' , index = False )
1189+ result = data .to_json (orient = 'table' , index = False )
12011190 result = json .loads (result )
12021191
1203- fields = [{'name' : 'A' , 'type' : 'integer' }]
1204-
1205- schema = {
1206- 'fields' : fields ,
1207- 'pandas_version' : '0.20.0'
1208- }
1209-
12101192 expected = {
1211- 'schema' : schema ,
1212- 'data' : [{ 'A' : 1 }, { 'A' : 2 }, { 'A' : 3 }]
1193+ 'schema' : pd . io . json . build_table_schema ( data , index = False ) ,
1194+ 'data' : DataFrame ( data ). to_dict ( orient = 'records' )
12131195 }
12141196
12151197 assert result == expected
12161198
12171199 @pytest .mark .parametrize ('orient' , [
1218- ('records' ),
1219- ('index' ),
1220- ('columns' ),
1221- ('values' ),
1200+ 'records' , 'index' , 'columns' , 'values'
12221201 ])
12231202 def test_index_false_error_to_json (self , orient ):
12241203 # GH 17394
12251204 # Testing error message from to_json with index=False
1205+
12261206 df = pd .DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ])
12271207
12281208 with tm .assert_raises_regex (ValueError , "'index=False' is only "
0 commit comments