我刚刚发现 json_normalize 函数,它在获取 JSON 对象并给我一个 pandas Dataframe 方面效果很好。现在我想要反向操作,它采用相同的 Dataframe 并给我一个 json (或类似 json 的字典,我可以轻松地转换为 json),其结构与原始 json 相同。
这是一个例子:https://hackersandslackers.com/json-into-pandas-dataframes/ https://hackersandslackers.com/json-into-pandas-dataframes/.
他们获取一个 JSON 对象(或类似 JSON 的 python 字典)并将其转换为一个数据帧,但我现在想获取该数据帧并将其转换回一个类似 JSON 的字典(以便稍后转储到 json 文件)。
我用几个函数实现了它
def set_for_keys(my_dict, key_arr, val):
"""
Set val at path in my_dict defined by the string (or serializable object) array key_arr
"""
current = my_dict
for i in range(len(key_arr)):
key = key_arr[i]
if key not in current:
if i==len(key_arr)-1:
current[key] = val
else:
current[key] = {}
else:
if type(current[key]) is not dict:
print("Given dictionary is not compatible with key structure requested")
raise ValueError("Dictionary key already occupied")
current = current[key]
return my_dict
def to_formatted_json(df, sep="."):
result = []
for _, row in df.iterrows():
parsed_row = {}
for idx, val in row.iteritems():
keys = idx.split(sep)
parsed_row = set_for_keys(parsed_row, keys, val)
result.append(parsed_row)
return result
#Where df was parsed from json-dict using json_normalize
to_formatted_json(df, sep=".")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)