我在Python中有这个JSON列表:
[{'id': 'TC2-FFA',
'shortCode': 'TC2-FFA',
'dataSet': {'datumPrecision': 2,
'id': 'TC2_37',
'shortCode': 'TC2_37',
'shortDescription': 'Clean Continent to US Atlantic coast',
'displayGroup': 'BCTI',
'datumUnit': 'Worldscale',
'data': [{'value': 156.11, 'date': '2023-03-06'}],
'apiIdentifier': 'RDSX9KRCHQI9TVGID5O7XQGBP1KKBZ0F'},
'datumUnit': 'WS',
'datumPrecision': 3,
'projectionStartOn': '2005-01-04T00:00:00',
'projectionEndOn': '2023-03-06T00:00:00',
'apiIdentifier': 'RPSBTGHKN64SV91SV9R3492RCH33D2OH'},
{'id': 'TC2$-FFA',
'shortCode': 'TC2$-FFA',
'dataSet': {'datumPrecision': 2,
'id': 'TC2_37',
'shortCode': 'TC2_37',
'shortDescription': 'Clean Continent to US Atlantic coast',
'displayGroup': 'BCTI',
'datumUnit': 'Worldscale',
'data': [{'value': 156.11, 'date': '2023-03-06'}],
'apiIdentifier': 'RDSX9KRCHQI9TVGID5O7XQGBP1KKBZ0F'},
'datumUnit': '$/mt',
'datumPrecision': 3,
'projectionStartOn': '2010-05-10T00:00:00',
'projectionEndOn': '2023-03-06T00:00:00',
'apiIdentifier': 'RPSH1H9454DYUE7G8CLHVLFPJZ3BVM77'}]
如何使用pandas.json_normalize
只检索dataSet
下的数据shortCode
(或id
)和data
(dataSet
--data
--value
和date
)?
这是所需的 Dataframe :
shortCode data.value data.date
0 TC2-FFA 156.11 2023-03-06
1 TC2$-FFA 156.11 2023-03-06
我试过了
pd.json_normalize(lst_object, record_path=['dataSet', ['shortCode', ['data', 'value'], ['data', 'date']])
但失败了
2条答案
按热度按时间uz75evzq1#
可能会让人困惑。
您希望
dataSet.data
中的所有值都是您的记录。然后可以使用 meta引入
shortCode
ldioqlga2#
修复您的
record_path
并传递meta_path
和record_prefix
的参数值结果