Skip to content

Instantly share code, notes, and snippets.

@ultrafunkamsterdam
Created August 9, 2019 12:54
Show Gist options
  • Save ultrafunkamsterdam/971143ca69753ab2ab4057f67ef3ed21 to your computer and use it in GitHub Desktop.
Save ultrafunkamsterdam/971143ca69753ab2ab4057f67ef3ed21 to your computer and use it in GitHub Desktop.
stringify dict keys and values (nodes) recursively (where possible)
def stringify_nodes(data):
if isinstance(data, list):
return [stringify_nodes(x) for x in data]
elif isinstance(data, dict):
dkeys = list(data.keys())
for i,k in enumerate(dkeys):
try:
dkeys[i] = k.decode()
except:
pass
data = dict(zip(dkeys, list(data.values())))
return {stringify_nodes(key): stringify_nodes(val) for key, val in data.items()}
elif isinstance(data, bytes):
try:
return data.decode()
except:
return data
else:
return data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment