使用 python 删除 JSON 文件中的 NaN

问题描述 投票:0回答:2

Json 文件示例:

{
  "name": "John Doe",
  "age": 30,
  "height": null,
  "weight": NaN,
}
{
  "name": "Jim Hanks",
  "age": NaN,
  "height": NaN,
  "weight": NaN,
}

现在想象有很多行,有些只包含 NaN,有些包含一些 NaN..等等

对于每一行 NaN 都必须删除 not gsubbed 或类似的东西

我尝试了使用 import math 和 isnan() 等方法,但我的函数仅将其 gsubted 为 null。 我不是一个真正的 Python 爱好者 :/

输出应该是:

{ “姓名”:“约翰·多伊”, “年龄”:30, “高度”:空, } { “姓名”:“吉姆·汉克斯”, }

感谢所有帮助

python json nan na
2个回答
0
投票

使用外部函数处理json文件怎么样?

import json

def remove_nans(obj):
    if isinstance(obj, dict):
        # Recursively remove NaNs from dictionary
        return {key: remove_nans(value) for key, value in obj.items() if not (isinstance(value, float) and math.isnan(value))}
    elif isinstance(obj, list):
        # Recursively remove NaNs from list
        return [remove_nans(item) for item in obj]
    else:
        return obj


cleaned_data = remove_nans(data)

0
投票

可以帮忙

processed_data = [remove_nans(row) for row in data]

def remove_nans(obj):
    return {key: value for key, value in obj.items() if value is not NaN and not (isinstance(value, float) and math.isnan(value))}
© www.soinside.com 2019 - 2024. All rights reserved.