maxframe.dataframe.Series.mf.flatjson#

Series.mf.flatjson(query_paths: List[str], dtypes=None, dtype=None, name: str = None) DataFrame#

将 Series 中的 JSON 对象根据 JSON 查询展平为 DataFrame。

参数:
  • series (Series) -- JSON 字符串的 Series。

  • query_paths (List[str] or str) -- 每个生成列的 JSON 查询路径。路径格式应遵循 [RFC9535](https://datatracker.ietf.org/doc/rfc9535/)。

  • dtypes (Series, default None) -- 指定返回 DataFrame 的数据类型。不能与 dtype 同时使用。

  • dtype (numpy.dtype, default None) -- 指定返回 Series 的数据类型。不能与 dtypes 同时使用。

  • name (str, default None) -- 指定返回 Series 的名称。

返回:

当指定 dtypes 时返回 DataFrame,否则返回 Series。

返回类型:

DataFrame or Series

示例

>>> import maxframe.dataframe as md
>>> import pandas as pd
>>> s = md.Series(
...     [
...         '{"age": 24, "gender": "male", "graduated": false}',
...         '{"age": 25, "gender": "female", "graduated": true}',
...     ]
... )
>>> s.execute()
0    {"age": 24, "gender": "male", "graduated": false}
1    {"age": 25, "gender": "female", "graduated": true}
dtype: object
>>> df = s.mf.flatjson(
...    ["$.age", "$.gender", "$.graduated"],
...    dtypes=pd.Series(["int32", "object", "bool"], index=["age", "gender", "graduated"]),
... )
>>> df.execute()
    age  gender  graduated
0   24    male       True
1   25  female       True
>>> s2 = s.mf.flatjson("$.age", name="age", dtype="int32")
>>> s2.execute()
0    24
1    25
Name: age, dtype: int32