如何使用python从json对象中提取值?

时间:2017-03-08 07:27:35

标签: json python-2.7

我有一个数据框,其中一列包含名为cast_and_crew的json对象。
我需要获取密钥' person_name'的价值。并将其存储在单独的数据框中 包含cast_and_crew json的数据框在this中给出 请参考这个图像。 click here

  

一行内的json看起来像是

[
 {'characterName': '', 'creditType': 'Actor', 'personName':'M.A.Nadiadwala'},
 {'characterName': '', 'creditType': 'Actor',
 'personName': 'Gyandev Agnihotri'},
 {'characterName': '', 'creditType': 'Actor', 
'personName': 'Rakesh Kumar'}
]

列cast_and_crew是列表
(type(movie_details.iloc[0]['cast_and_crew']) Out[18]: list) 其中包含键值对的字典。

3 个答案:

答案 0 :(得分:0)

new_df = df.cast_and_crew.apply(lambda x: x[0]['personName']).to_frame(name='personName')

应该做的伎俩。我无法真正测试它,因为您没有以可复制粘贴的方式粘贴数据框。

编辑:这只占用列表的第一项。我不确定你的输出应该是什么,所以也许我回答得太快了。您能否举例说明您想要的内容?

答案 1 :(得分:0)

您可以参考this。它会将您的json属性放入一列,然后您可以使用

将该数据帧连接到原始的cast_and_crew数据框中
frames = [df1, df2]
result = pd.concat(frames)

答案 2 :(得分:0)

你可以用它来阅读这个json我无法理解你的o / p格式,所以你可以继续...

cast_and_crew =[
   {'characterName':'','creditType':'Actor','personName':'M.A.Nadiadwala'},
   {'characterName': '', 'creditType': 'Actor',
    'personName': 'Gyandev Agnihotri'},
   {'characterName': '', 'creditType': 'Actor', 
    'personName': 'Rakesh Kumar'}
]
for data in cast_and_crew:
    # for python3 use print(data.get('personName'))
    print data.get('personName')

O / P:

M.A.Nadiadwala
M.A.Nadiadwala
M.A.Nadiadwala