Skip to content

Commit 5220c09

Browse files
committed
BUG: Fix json_normalize throws TypeError with array of values and ecord_prefix (pandas-dev#21536)
1 parent 71c53f0 commit 5220c09

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

pandas/io/json/normalize.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,8 @@ def _recursive_extract(data, path, seen_meta, level=0):
259259
result = DataFrame(records)
260260

261261
if record_prefix is not None:
262-
result.rename(columns=lambda x: record_prefix + x, inplace=True)
262+
result.rename(columns=lambda x: "{p}{c}".format(
263+
p=record_prefix, c=x), inplace=True)
263264

264265
# Data types, a problem
265266
for k, v in compat.iteritems(meta_vals):

pandas/tests/io/json/test_normalize.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ def test_simple_normalize_with_separator(self, deep_nested):
123123
'country', 'states_name']).sort_values()
124124
assert result.columns.sort_values().equals(expected)
125125

126+
def test_value_array_record_prefix(self):
127+
#GH 21536
128+
result = json_normalize({'A': [1, 2]}, 'A', record_prefix='Prefix.')
129+
expected = DataFrame([[1], [2]], columns=['Prefix.0'])
130+
tm.assert_frame_equal(result.reindex_like(expected), expected)
131+
126132
def test_more_deeply_nested(self, deep_nested):
127133

128134
result = json_normalize(deep_nested, ['states', 'cities'],

0 commit comments

Comments
 (0)