使用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-我认为没有变化。是的,这无关紧要。非常感谢!