@@ -1139,90 +1139,70 @@ def roundtrip(s, encoding='latin-1'):
1139
1139
for s in examples :
1140
1140
roundtrip (s )
1141
1141
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 ):
1153
1168
# GH 17394
1154
- # Testing index parameter in to_json
1169
+ # Testing index=False in to_json with orient='split'
1155
1170
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 )
1160
1172
result = json .loads (result )
1161
1173
1162
- expected = {
1163
- 'columns' : ['a' , 'b' ],
1164
- 'data' : [[1 , 2 ], [4 , 5 ]]
1165
- }
1166
-
1167
1174
assert result == expected
1168
1175
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'
1198
1188
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 )
1201
1190
result = json .loads (result )
1202
1191
1203
- fields = [{'name' : 'A' , 'type' : 'integer' }]
1204
-
1205
- schema = {
1206
- 'fields' : fields ,
1207
- 'pandas_version' : '0.20.0'
1208
- }
1209
-
1210
1192
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' )
1213
1195
}
1214
1196
1215
1197
assert result == expected
1216
1198
1217
1199
@pytest .mark .parametrize ('orient' , [
1218
- ('records' ),
1219
- ('index' ),
1220
- ('columns' ),
1221
- ('values' ),
1200
+ 'records' , 'index' , 'columns' , 'values'
1222
1201
])
1223
1202
def test_index_false_error_to_json (self , orient ):
1224
1203
# GH 17394
1225
1204
# Testing error message from to_json with index=False
1205
+
1226
1206
df = pd .DataFrame ([[1 , 2 ], [4 , 5 ]], columns = ['a' , 'b' ])
1227
1207
1228
1208
with tm .assert_raises_regex (ValueError , "'index=False' is only "
0 commit comments