【发布时间】:2022-01-12 22:46:57
【问题描述】:
我有一个数据框,其中有一列的行为 json,只要删除了特定的键,我就能够正确解析它们。
id | email | phone no | details
-------------------------------------------------
0 10 | abc@g.com | 123 | {"a" : "hello", "b" : {"x": "whatever"....}, "c": "check"}
1 12 | xyz@g.com | 789 | {"a" : "bye", "b" : {"x": "ignore"....}, "c": "cool"}
列详细信息有一个名为“b”的键,其中包含许多键值对,其中一些已损坏,因为缺少逗号或反逗号。我不在乎它,因为我不需要它。请问我可以删除那部分 JSON 吗?
我想要如下所示:
id | email | phone no | details
-------------------------------------------------
0 10 | abc@g.com | 123 | {"a" : "hello", "c": "check"}
1 12 | xyz@g.com | 789 | {"a" : "bye", "c": "cool"}
我需要将详细信息中的键/值吐到“详细信息”的行和列中,如果我删除那个损坏的键,我会这样做。我有数百万条记录,因此我需要一种忽略“详细信息”列中所有行的键的方法。
谢谢。
【问题讨论】:
-
删除它会很困难,因为您尝试匹配的任何模式都可能包含在损坏的数据中。
-
最好先解决导致 JSON 损坏的问题。
-
值的dtype是什么。它看起来像一个字典,但我想这是一个类似字典的字符串?
-
感谢大家的 cmets,我们已要求修复 JSON,但源团队无法做到。实际上,这个新密钥是最近引入的,用于我们不需要使用的其他用途。它导致我现有的代码失败。
-
@Corralien - 是的,这是数据框列中的 JSON 字符串。
标签: python json pandas dataframe