使用python处理包含嵌套json的列
我有一个带有各种列的使用python处理包含嵌套json的列,python,json,pandas,dataframe,Python,Json,Pandas,Dataframe,我有一个带有各种列的df。一列-mycl-如下所示: df someCol myCol a [{}] b [{'X': {'A': "value", 'B': "value"}}] c [{}, {}] d [{'X': {'A': "value", 'B': "value", 'C': "value"}}] X中键值对的最大数目未知:有些行包含所有键值对,有些行仅包含一个选择,有些行为空。我想用实际列替换mycl,根据X中
df
。一列-mycl
-如下所示:
df
someCol myCol
a [{}]
b [{'X': {'A': "value", 'B': "value"}}]
c [{}, {}]
d [{'X': {'A': "value", 'B': "value", 'C': "value"}}]
X
中键值对的最大数目未知:有些行包含所有键值对,有些行仅包含一个选择,有些行为空。我想用实际列替换mycl
,根据X
中键对的唯一数量,使用所需的任意多个列。因此,在这个特定的示例中,我将得出以下结论:
df
someCol A B C
a N/A N/A N/A
b value value N/A
c N/A N/A N/A
d value value value
我正在努力想出一个解决这个问题的通用方法,这是必需的,因为我不知道最后需要多少“附加”专栏。任何想法都将不胜感激。解决方案首先返回带有键
X
的列表和字典,然后将Nones转换为空dict,最后传递到数据帧
构造函数:
d = [{} if pd.isna(x) else x for x in df.pop('myCol').str[0].str.get('X')]
df = df.join(pd.DataFrame(d, index=df.index))
print (df)
someCol A B C
0 a NaN NaN NaN
1 b value value NaN
2 c NaN NaN NaN
3 d value value value
您好,请查看pandas.read_json:如果您还需要帮助,请编辑您的问题谢谢。如果值是
真
或假
而不是“值”
,我如何调整您的答案以适应它?@CHRD-我认为没有变化。是的,这无关紧要。非常感谢!