Skip to content

Commit d52e699

Browse files
committed
TST: json tests to int64 to avoid dtype issues
1 parent 3349ea7 commit d52e699

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

pandas/io/json.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,15 @@ def _try_convert_data(self, name, data, use_dtypes=True, convert_dates=True):
268268
except:
269269
pass
270270

271+
if data.dtype == 'float':
272+
273+
# coerce floats to 64
274+
try:
275+
data = data.astype('float64')
276+
result = True
277+
except:
278+
pass
279+
271280
# do't coerce 0-len data
272281
if len(data) and (data.dtype == 'float' or data.dtype == 'object'):
273282

@@ -280,6 +289,16 @@ def _try_convert_data(self, name, data, use_dtypes=True, convert_dates=True):
280289
except:
281290
pass
282291

292+
# coerce ints to 64
293+
if data.dtype == 'int':
294+
295+
# coerce floats to 64
296+
try:
297+
data = data.astype('int64')
298+
result = True
299+
except:
300+
pass
301+
283302
return data, result
284303

285304
def _try_convert_to_date(self, data):

pandas/io/tests/test_json/test_pandas.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
_frame = DataFrame(_seriesd)
2828
_frame2 = DataFrame(_seriesd, columns=['D', 'C', 'B', 'A'])
29-
_intframe = DataFrame(dict((k, v.astype(int))
29+
_intframe = DataFrame(dict((k, v.astype(np.int64))
3030
for k, v in _seriesd.iteritems()))
3131

3232
_tsframe = DataFrame(_tsd)
@@ -71,6 +71,9 @@ def _check_orient(df, orient, dtype=None, numpy=False, convert_axes=True, check_
7171

7272
unser = unser.sort()
7373

74+
if dtype is False:
75+
check_dtype=False
76+
7477
if not convert_axes and df.index.dtype.type == np.datetime64:
7578
unser.index = DatetimeIndex(unser.index.values.astype('i8'))
7679
if orient == "records":
@@ -288,7 +291,7 @@ def test_series_to_json_except(self):
288291

289292
def test_typ(self):
290293

291-
s = Series(range(6), index=['a','b','c','d','e','f'])
294+
s = Series(range(6), index=['a','b','c','d','e','f'], dtype='int64')
292295
result = read_json(s.to_json(),typ=None)
293296
assert_series_equal(result,s)
294297

0 commit comments

Comments
 (0)