Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for The Flat Dictionary by snake_at_work
def flatten(dictionary: dict[str, str | dict]) -> dict[str, str]:
flat_dict = {}
for k in dictionary:
if type(dictionary[k]) == dict:
for d in dictionary[k]:
key_further = k + "/" + d
flat_dict[key_further] = dictionary[k][d]
if type(dictionary[k]) != dict:
flat_dict[k] = dictionary[k]
if not dictionary[k]:
flat_dict[k] = ""
for k2 in flat_dict:
if type(flat_dict[k2]) == dict:
return flatten(flat_dict)
return flat_dict
print("Example:")
print(flatten({"key": "value"}))
# These "asserts" are used for self-checking
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("The mission is done! Click 'Check Solution' to earn rewards!")
Nov. 22, 2025
Comments: