@@ -54,6 +54,34 @@ def setUp(self):
54
54
self .tsframe = _tsframe .copy ()
55
55
self .mixed_frame = _mixed_frame .copy ()
56
56
57
+ def test_frame_non_unique_index (self ):
58
+ df = DataFrame ([['a' , 'b' ], ['c' , 'd' ]], index = [1 , 1 ],
59
+ columns = ['x' , 'y' ])
60
+
61
+ self .assertRaises (ValueError , df .to_json , orient = 'index' )
62
+ self .assertRaises (ValueError , df .to_json , orient = 'columns' )
63
+
64
+ assert_frame_equal (
65
+ df , read_json (df .to_json (orient = 'split' ), orient = 'split' ))
66
+ unser = read_json (df .to_json (orient = 'records' ), orient = 'records' )
67
+ self .assert_ (df .columns .equals (unser .columns ))
68
+ np .testing .assert_equal (df .values , unser .values )
69
+ unser = read_json (df .to_json (orient = 'values' ), orient = 'values' )
70
+ np .testing .assert_equal (df .values , unser .values )
71
+
72
+ def test_frame_non_unique_columns (self ):
73
+ df = DataFrame ([['a' , 'b' ], ['c' , 'd' ]], index = [1 , 2 ],
74
+ columns = ['x' , 'x' ])
75
+
76
+ self .assertRaises (ValueError , df .to_json , orient = 'index' )
77
+ self .assertRaises (ValueError , df .to_json , orient = 'columns' )
78
+ self .assertRaises (ValueError , df .to_json , orient = 'records' )
79
+
80
+ assert_frame_equal (df , read_json (df .to_json (orient = 'split' ),
81
+ orient = 'split' , dtype = False ))
82
+ unser = read_json (df .to_json (orient = 'values' ), orient = 'values' )
83
+ np .testing .assert_equal (df .values , unser .values )
84
+
57
85
def test_frame_from_json_to_json (self ):
58
86
59
87
def _check_orient (df , orient , dtype = None , numpy = False , convert_axes = True , check_dtype = True , raise_ok = None ):
@@ -236,6 +264,17 @@ def test_frame_to_json_except(self):
236
264
df = DataFrame ([1 , 2 , 3 ])
237
265
self .assertRaises (ValueError , df .to_json , orient = "garbage" )
238
266
267
+ def test_series_non_unique_index (self ):
268
+ s = Series (['a' , 'b' ], index = [1 , 1 ])
269
+
270
+ self .assertRaises (ValueError , s .to_json , orient = 'index' )
271
+
272
+ assert_series_equal (s , read_json (s .to_json (orient = 'split' ),
273
+ orient = 'split' , typ = 'series' ))
274
+ unser = read_json (s .to_json (orient = 'records' ),
275
+ orient = 'records' , typ = 'series' )
276
+ np .testing .assert_equal (s .values , unser .values )
277
+
239
278
def test_series_from_json_to_json (self ):
240
279
241
280
def _check_orient (series , orient , dtype = None , numpy = False ):
0 commit comments