You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python移除JSON键报错及异构JSON数据比对问题求助

解决JSON响应处理时的AttributeError问题

错误原因

你操作的new_json_response是JSON字符串,而非Python字典。字符串没有remove()方法,只有列表或字典有对应的删除操作,因此触发报错。

解决步骤

1. 将JSON字符串解析为Python字典

API返回的响应默认是JSON格式的字符串,必须用json.loads()转换成字典才能操作键值对:

import json

# 假设json2是你从API获取的原始字符串响应
json2_raw = '{"effectiveEndDate": "2024-12-31", "samplelastDate": "2024-11-30", "key1": "value1", "key2": "value2"}'
new_json_response = json.loads(json2_raw)

2. 删除字典中的多余键

字典无法使用remove(),可以用以下两种方式处理:

  • 直接删除(适用于确定键一定存在的场景):
del new_json_response['effectiveEndDate']
del new_json_response['samplelastDate']
  • 安全删除(避免键不存在时报错):
# pop()方法可指定默认值,键不存在时返回默认值而不抛出异常
new_json_response.pop('effectiveEndDate', None)
new_json_response.pop('samplelastDate', None)

3. 批量删除多个键(高效方案)

如果需要删除的键较多,用循环批量处理:

keys_to_remove = ['effectiveEndDate', 'samplelastDate']
for key in keys_to_remove:
    if key in new_json_response:
        del new_json_response[key]

4. (可选)转回JSON字符串

若处理后需要将字典转回字符串格式,使用json.dumps():

cleaned_json_str = json.dumps(new_json_response)

注意事项

  • 如果API返回的是JSON数组(比如[{"key": "value"}, ...]),需要遍历数组中的每个字典逐一处理。
  • 键名大小写敏感,必须和JSON中的键完全匹配。

内容的提问来源于stack exchange,提问作者VN-

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:07:10