Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Auto Shared solution in Uncategorized category for The Flat Dictionary by 115141
def flatten(dictionary):
def _flatten(dictionary, parent_key=''):
items = []
for k, v in dictionary.items():
new_key = f"{parent_key}/{k}" if parent_key else k
if isinstance(v, dict):
if v:
items.extend(_flatten(v, new_key).items())
else:
items.append((new_key, ""))
else:
items.append((new_key, v))
return dict(items)
return _flatten(dictionary)
# Test cases
assert flatten({"key": "value"}) == {"key": "value"}
assert flatten({"key": {"deeper": {"more": {"enough": "value"}}}}) == {
"key/deeper/more/enough": "value"
}
assert flatten({"empty": {}}) == {"empty": ""}
assert flatten(
{
"name": {"first": "One", "last": "Drone"},
"job": "scout",
"recent": {},
"additional": {"place": {"zone": "1", "cell": "2"}},
}
) == {
"name/first": "One",
"name/last": "Drone",
"job": "scout",
"recent": "",
"additional/place/zone": "1",
"additional/place/cell": "2",
}
print("All tests passed!")
May 20, 2024
Comments: