Python - 用空字典/数组代替空值

3
我希望在使用pandas的json_normalize时,能用空数组代替null值。以下是示例:
{
    "id": {
        "0": "x0123455",
        "1": "x0123456"
    },
    "team": {
        "0": null,
        "1": [
            {
                "name": "Jenny",
                "email": "jenny@gmail.com"
            }
        ]
    },

我在某处读到,需要使用空字典来替换null值以避免出现错误。如何实现这一目标?

编辑

作为一种解决方法,我过滤掉了null值。


你尝试在该字典上调用json_normalize函数,看看空值会发生什么了吗? - mquasar
调用json_normalize时返回空值。顺便说一下,我正在处理响应json,它返回一些null值,但其他属性具有“[]”值。 - Maye Ger
2个回答

1

我认为你可以做一些简单的事情,比如

for item in items:
    for email in item['team'].values():
        if email == null:
            email = {}

0
当我在这个字典上运行JSON normalize函数(尽管它不是一个JSON对象),它提供了一个包括None值的输出。
import pandas as pd

test_dict ={
    "id": {"0": "x0123455", "1": "x0123456"},
    "team": {"0": None, "1": [{"name": "Jenny", "email": "jenny@gmail.com"}]},
}

df = pd.io.json.json_normalize(test_dict)

print(df)

这段代码在我执行df.to_csv时产生以下输出:

,id.0,id.1,team.0,team.1 0,x0123455,x0123456,,"[{'name': 'Jenny', 'email': 'jenny@gmail.com'}]"

*注意,如果值为空,这将不起作用,因为Python中不存在空值。

我建议如果json normalize适用于您的情况,请直接运行它,否则在stackoverflow上此问题可能会通过递归代码回答您的问题,以删除所有空值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接