gpt4 book ai didi

python - Python 解析嵌套 Json 去除列中的特殊字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:13 25 4
gpt4 key购买 nike

这是我的 Json 文件

{
"highest_table": {
"items": [{
"key": "Human 1",
"columns": {
"Na$me": "Tom",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "24",
"Ge_nder": "M"
}
},
{
"key": "Human 2",
"columns": {
"Na$me": "John",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "23",
"Ge_nder": "M"
}
}
]
}
}

目标是删除列名中的任何和所有特殊字符(或者如果更简单,则删除 .json 文件中的任何特殊字符),并返回一个 .json 文件。我最初的想法是将其转换为 pandas,删除列标题中的特殊字符并将其转换回 .json 文件。

到目前为止,这是我尝试过的。它们都只打印一行。

import json
from pandas.io.json import json_normalize

data_file = r"C:\characters.json"

with open(data_file) as data_file:
data = json.load(data_file)

df = json_normalize(data)

--

data_file = r"C:\characters.json"

df = pd.read_json(data_file)

如何提取列、删除特殊字符并将它们放回 .json 文件中?

最佳答案

一些 Q&D - 您必须为 fixkey 提供完整的实现,但这应该可以解决您的问题。

import json

def fixkey(key):
# toy implementation
#print("fixing {}".format(key))
return key.replace("&", "").replace("$", "")

def normalize(data):
#print("normalizing {}".format(data))
if isinstance(data, dict):
data = {fixkey(key): normalize(value) for key, value in data.items()}
elif isinstance(data, list):
data = [normalize(item) for item in data]
return data

jsdata = """
{
"highest_table": {
"items": [{
"key": "Human 1",
"columns": {
"Na$me": "Tom",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "24",
"Ge_nder": "M"
}
},
{
"key": "Human 2",
"columns": {
"Na$me": "John",
"Description(ms/2)": "Table Number One on the Top",
"A&ge": "23",
"Ge_nder": "M"
}
}
]
}
}
"""


data = json.loads(jsdata)

data = normalize(data)

result = json.dumps(data, indent=2)
print(result)

关于python - Python 解析嵌套 Json 去除列中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53225383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com