Skip to content

Instantly share code, notes, and snippets.

@ozcanyarimdunya
Last active July 29, 2018 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ozcanyarimdunya/93b5eedec82f1dbeb153d8ffe98d18a0 to your computer and use it in GitHub Desktop.
Save ozcanyarimdunya/93b5eedec82f1dbeb153d8ffe98d18a0 to your computer and use it in GitHub Desktop.
Multi nested key dictionary to single dictionary
import pandas as pd
class MultiToSingleDict:
def __init__(self, data, sep='.'):
self._data = data
self._sep = sep
self._out = {}
for k, v in self._recursive(data):
self._out[k] = v
def _recursive(self, data, parent=None):
for key, value in data.items():
if isinstance(value, dict):
if not parent:
tmp = key
else:
tmp = f"{parent}{self._sep}{key}"
yield from self._recursive(value, parent=tmp)
elif isinstance(value, list) or isinstance(value, tuple):
value = ", ".join(value)
if not parent:
yield f"{key}", value
else:
yield f"{parent}{self._sep}{key}", value
else:
if not parent:
yield f"{key}", value
else:
yield f"{parent}{self._sep}{key}", value
def out_series(self):
return pd.Series(self._out)
def out_dict(self):
return self._out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment