1。

    json_string = json.dumps(
        df.to_dict(orient='records'),
        indent=4
    )


2。

    json_string = json_string.replace('NaN', 'null')


有没有办法一步一步做到这两个?

最佳答案

更好的方法是使用DataFrame.to_json-还可以将丢失的值替换为null

df = pd.DataFrame({'col':['a',
                                np.nan,
                                'c']})

json_string = df.to_json(orient='records')
print (json_string)
[{"col":"a"},{"col":null},{"col":"c"}]


您的解决方案应使用simplejson进行更改:

import simplejson

json_string = simplejson.dumps(df.to_dict(orient='records'), ignore_nan=True)
print (json_string)
[{"col": "a"}, {"col": null}, {"col": "c"}]


或将缺少的值替换为None

json_string = json.dumps(
        df.mask(df.isna(), None).to_dict(orient='records'),
        indent=4,
    )

print (json_string)

[
    {
        "col": "a"
    },
    {
        "col": null
    },
    {
        "col": "c"
    }
]

关于python - 是否可以一步完成这些操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55999622/

10-09 07:56