无法理解 Json_normalize Record_path 论点
Having trouble understanding Json_normalize Record_path argument
因此来自 pandas 文档:
https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html
data = [
{
"state": "Florida",
"shortname": "FL",
"info": {"governor": "Rick Scott"},
"counties": [
{"name": "Dade", "population": 12345},
{"name": "Broward", "population": 40000},
{"name": "Palm Beach", "population": 60000},
],
},
{
"state": "Ohio",
"shortname": "OH",
"info": {"governor": "John Kasich"},
"counties": [
{"name": "Summit", "population": 1234},
{"name": "Cuyahoga", "population": 1337},
],
},
]
result = pd.json_normalize(
data, "counties", ["state", "shortname", ["info", "governor"]]
)
result
name population state shortname info.governor
0 Dade 12345 Florida FL Rick Scott
1 Broward 40000 Florida FL Rick Scott
2 Palm Beach 60000 Florida FL Rick Scott
3 Summit 1234 Ohio OH John Kasich
4 Cuyahoga 1337 Ohio OH John Kasich
我的问题是 record_path 参数到底在做什么?
据我了解,record_path 正在指定记录列表,但随后我们也从状态、短名称等获取记录作为数据框中的特征。
那么 record_label 和元参数有什么区别呢?
P.S.I 查看了其他 Whosebug 帖子,但不太明白。
感谢您的帮助。
record_path
指定项目列表作为实际行的基础。
如下所示,当您省略 meta
(第三个参数)时,行只是您指定列表中对象的属性,counties
:
>>> pd.json_normalize(data, record_path="counties")
name population
0 Dade 12345
1 Broward 40000
2 Palm Beach 60000
3 Summit 1234
4 Cuyahoga 1337
直接对应countries
中的对象:
...
"counties": [
{"name": "Dade", "population": 12345},
{"name": "Broward", "population": 40000},
{"name": "Palm Beach", "population": 60000},
]
...
"counties": [
{"name": "Summit", "population": 1234},
{"name": "Cuyahoga", "population": 1337},
],
...
meta
指定您传递的 JSON 中的属性 (data
) 添加到 records_path
.
指定的记录中
因此来自 pandas 文档: https://pandas.pydata.org/docs/reference/api/pandas.json_normalize.html
data = [
{
"state": "Florida",
"shortname": "FL",
"info": {"governor": "Rick Scott"},
"counties": [
{"name": "Dade", "population": 12345},
{"name": "Broward", "population": 40000},
{"name": "Palm Beach", "population": 60000},
],
},
{
"state": "Ohio",
"shortname": "OH",
"info": {"governor": "John Kasich"},
"counties": [
{"name": "Summit", "population": 1234},
{"name": "Cuyahoga", "population": 1337},
],
},
]
result = pd.json_normalize(
data, "counties", ["state", "shortname", ["info", "governor"]]
)
result
name population state shortname info.governor
0 Dade 12345 Florida FL Rick Scott
1 Broward 40000 Florida FL Rick Scott
2 Palm Beach 60000 Florida FL Rick Scott
3 Summit 1234 Ohio OH John Kasich
4 Cuyahoga 1337 Ohio OH John Kasich
我的问题是 record_path 参数到底在做什么? 据我了解,record_path 正在指定记录列表,但随后我们也从状态、短名称等获取记录作为数据框中的特征。 那么 record_label 和元参数有什么区别呢?
P.S.I 查看了其他 Whosebug 帖子,但不太明白。
感谢您的帮助。
record_path
指定项目列表作为实际行的基础。
如下所示,当您省略 meta
(第三个参数)时,行只是您指定列表中对象的属性,counties
:
>>> pd.json_normalize(data, record_path="counties")
name population
0 Dade 12345
1 Broward 40000
2 Palm Beach 60000
3 Summit 1234
4 Cuyahoga 1337
直接对应countries
中的对象:
...
"counties": [
{"name": "Dade", "population": 12345},
{"name": "Broward", "population": 40000},
{"name": "Palm Beach", "population": 60000},
]
...
"counties": [
{"name": "Summit", "population": 1234},
{"name": "Cuyahoga", "population": 1337},
],
...
meta
指定您传递的 JSON 中的属性 (data
) 添加到 records_path
.