json.dumps()转换时遇到的一些坑

在使用Pandas进行数据分析时,可能需要将字典存储到数据帧的单元格中。这通常涉及将字典转换为字符串,可以使用json.dumps()。之后,要将单元格中的字符串转回字典,可以使用json.loads(),但如果字符串包含特殊字符如NaN,true,false,null,则需预处理。另一种方法是使用eval(),但这可能不适用于所有情况,特别是当字符串中混合使用单双引号时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、利用pandas进行数据分析时,有时需要将字典存入pandas数据帧单元格内。例如:

a = {'a':1,'b',:2}
data['TEST'] = a

# 运行时一般报错
Length of values (3) does not match length of index (1)

# 需要将字典进行转换成文本,有两种方式
# 一种利用str强行进行转换,一种则是利用json.dumps()(建议使用该,方法)
a_str = json.dumps(a)
data['TEST'] = a_str

2、将字典存入单元格,后续使用时转回json字典格式,可以使用两种方式。

(1)、利用 json.dump(),该种方式只能针对只有双引号的情况,如果json字符串中同时存在单双引号时,则需要使用方法(2)

(2)、利用eval()进行转换,例如:

eval(py_str)['wordsInfo']

但需要注意json自负串中存在:NaN、true、false、null等等非json中存在的字符出现,当出现该类字符时需要将相应字符进行替换。例如:

jsonstr.replace("true","True").replace("false","False").replace("null","None")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值