我有一个来自像这个这样的API的json输出
{'trainingInput':
{'pythonModule': 'marketprice_aitp.predict',
'region': 'us-central1',
'runtimeVersion': '2.4',
,
'pythonVersion': '3.7',
'serviceAccount': 'projects/hh'},
'createTime': '2021-11-08T06:49:34Z',
'startTime': '2021-11-08T07:07:33Z',
'endTime': '2021-11-08T07:07:33Z',
'state': 'SUCCEEDED',
'trainingOutput': {'consumedMLUnits': 0.09},
'etag': '+YVkodd5cKA='}
我有一个pandas数据帧,它存储这个输出。我正在尝试访问特定的专栏,如belkow
df['region'] = df['trainingInput']["region"]
df['serviceaccount'] = df['trainingInput']["serviceAccount"]
我试过双引号和
df['region'] = job[''''trainingInput''''][''''region''''']
df['serviceaccount'] = job[''''trainingInput''''][''''serviceAccount''''']
但我犯了一个关键错误。请告诉我你的想法。
您正在在行/列的交叉点处寻找单个值。您可以在此处使用.at
:
data = {'trainingInput': {'pythonModule': 'marketprice_aitp.predict',
'region': 'us-central1', 'runtimeVersion': '2.4', 'pythonVersion': '3.7', 'serviceAccount': 'projects/hh'},
'createTime': '2021-11-08T06:49:34Z', 'startTime': '2021-11-08T07:07:33Z', 'endTime': '2021-11-08T07:07:33Z',
'state': 'SUCCEEDED', 'trainingOutput': {'consumedMLUnits': 0.09}, 'etag': '+YVkodd5cKA='}
df = pd.DataFrame(data)
In [191]: df.at['region', 'trainingInput']
Out[191]: 'us-central1'
In [192]: df.at['serviceAccount', 'trainingInput']
Out[192]: 'projects/hh'
我实际操作了我的数据帧,将其转换为正确的dict格式。
k_1 = df['trainingInput'].values
for i in k_1:
m= json.dumps(i)
k = json.loads(m)
df['serviceaccount'] =k['serviceAccount']
它奏效了。