Python 如何从数据帧中提取json?

Python 如何从数据帧中提取json?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个pandas数据框,其中一列中有一个表示json的字符串: |-----------------------------| |{"name": "John", "age": "32"}| |None | |{"name": "Mary", "age": "29"}| 我需要为nam

我有一个pandas数据框,其中一列中有一个表示json的字符串:

|-----------------------------|
|{"name": "John", "age": "32"}|
|None                         |
|{"name": "Mary", "age": "29"}|
我需要为name和age创建新的列,并从这个json中提取数据。
注意:可能是空值或缺少键。

创建两个名为name和age的新列。将函数应用于列dataframe,并使用try/except块将内容解析为json。如果有值,则将其分配给“名称/年龄”列;如果没有值或值为null,则相应地将“名称/年龄”列中的值设置为“无”

将函数应用于列:

解析json:
如果json字符串如下所示,请尝试以下操作:

import pandas as pd
import json

df = pd.DataFrame({'your_column_name':['{"name": "John", "age": 32}', None, '{"name": "Mary", "age": 29}']})
list_of_jsons = df.your_column_name.to_list()
list_of_jsons = [json.loads(s) if s else {"name": None, "name": None} for s in list_of_jsons]
df2 = pd.DataFrame(list_of_jsons)
df = pd.concat([df,df2], axis=1)

否则,每行中的内容都是一个包含字符串的集合。您需要使用str.split方法解析该字符串,并创建自己的字典变量列表I命名为list_of_jsons,创建df2并像上面那样连接。

引号是在方括号内还是在外?这不是JSON。在JSON中,字符串必须用双引号括起来answer@user2827262很明显,你回答了另一个问题。