maxframe.dataframe.read_json#

maxframe.dataframe.read_json(path, *, orient=None, typ='frame', dtype=None, convert_axes=None, lines=False, chunksize=None, compression='infer', index_col=None, usecols=None, chunk_bytes='64M', gpu=None, head_bytes='100k', head_lines=None, default_index_type: DefaultIndexType | str = None, use_nullable_dtypes: bool = <no_default>, dtype_backend: str = <no_default>, storage_options: dict = None, memory_scale: int = None, merge_small_files: bool = True, merge_small_file_options: dict = None, session=None, run_kwargs: dict = None, **kwargs)[源代码]#

将 JSON 文件读取到 DataFrame 中。

参数:
  • path (str, path object, or file-like object) -- 接受任何有效的字符串路径。该字符串可以是 URL。有效的 URL 协议包括 http、ftp、s3 和 file。对于文件 URL,需要指定主机。本地文件可以是:file://localhost/path/to/table.json,您也可以使用类似 hdfs://localhost:8020/test.json 的 URL 从外部资源读取。如果要传入路径对象,pandas 接受任何 os.PathLike。文件类对象是指具有 read() 方法的对象,例如文件句柄(通过内置 open 函数)或 StringIO

  • orient (str, optional) -- 预期 JSON 字符串格式的指示。兼容的 JSON 字符串可以通过 to_json() 生成,并带有相应的 orient 值。可能的 orient 集合是:- 'split' : 类似字典 {'index' -> [index], 'columns' -> [columns], 'data' -> [values]} - 'records' : 类似列表 [{column -> value}, ... , {column -> value}] - 'index' : 类似字典 {index -> {column -> value}} - 'columns' : 类似字典 {column -> {index -> value}} - 'values' : 只是值数组 允许和默认值取决于 typ 参数的值。* 当 typ == 'series' 时, - 允许的 orient 是 {'split','records','index'} - 默认是 'index' - Series 索引对于 orient 'index' 必须是唯一的。* 当 typ == 'frame' 时, - 允许的 orient 是 {'split','records','index','columns','values'} - 默认是 'columns' - DataFrame 索引对于 orient 'index''columns' 必须是唯一的。 - DataFrame 列对于 orient 'index''columns''records' 必须是唯一的。

  • typ ({{'frame', 'series'}}, default 'frame') -- 要恢复的对象类型。

  • dtype (bool or dict, default None) -- 如果为 True,则推断 dtypes;如果为列到 dtype 的字典,则使用这些;如果为 False,则完全不推断 dtypes,仅适用于数据。

  • convert_axes (bool, default None) -- 尝试将轴转换为适当的 dtypes。

  • convert_dates (bool or list of str, default True) -- 要解析为日期的列列表。如果为 True,则尝试解析类似日期的列。如果列标签 * 以 '_at' 结尾,* 以 '_time' 结尾,* 以 'date' 开头,或 * 是 'datetime''timestamp''modified''created',则该列标签是类似日期的。

  • keep_default_dates (bool, default True) -- 如果解析日期,则解析默认的类似日期的列。

  • precise_float (bool, default False) -- 设置为启用在将字符串解码为双精度值时使用更高精度(strtod)函数。默认(False)是使用快速但精度较低的内置功能。

  • date_unit (str, default None) -- 检测转换日期时的时间戳单位。默认行为是尝试检测正确的精度,但如果不需要此行为,则传递 's'、'ms'、'us' 或 'ns' 之一以强制仅解析秒、毫秒、微秒或纳秒。

  • encoding (str, default is 'utf-8') -- 用于解码 py3 字节的编码。

  • lines (bool, default False) -- 逐行读取文件作为 json 对象。

  • chunksize (int, optional) -- 返回 JsonReader 对象以进行迭代。有关 chunksize 的更多信息,请参见 IO Tools docs。这只能在 lines=True 时传递。如果为 None,则将整个文件一次性读入内存。

  • compression ({{'infer', 'gzip', 'bz2', 'zip', 'xz', None}}, default 'infer') -- 用于对磁盘上数据进行即时解压缩。如果为 'infer' 且 filepath_or_buffer 是路径类,则从以下扩展名检测压缩:'.gz'、'.bz2'、'.zip' 或 '.xz'(否则不解压缩)。如果使用 'zip',ZIP 文件必须只包含一个要读取的数据文件。设置为 None 表示不解压缩。

  • index_col (int, str, sequence of int / str, or False, default None) -- 用作 DataFrame 的行标签的列,可以是字符串名称或列索引。如果给定 int / str 序列,则使用 MultiIndex。注意:index_col=False 可用于强制 pandas 使用第一列作为索引,例如当您有一个在每行末尾有分隔符的格式错误的文件时。

  • usecols (list-like or callable, optional) -- 返回列的子集。如果是列表类,则所有元素必须是位置性的(即文档列中的整数索引)或与用户在 names 中提供的列名或从文档标题行推断出的列名相对应的字符串。例如,有效的列表类 usecols 参数可以是 [0, 1, 2]['foo', 'bar', 'baz']。元素顺序被忽略,因此 usecols=[0, 1][1, 0] 相同。要从 data 实例化 DataFrame 并保持元素顺序,请使用 pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']]['foo', 'bar'] 顺序或 pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]['bar', 'foo'] 顺序。如果是可调用的,则将针对列名评估可调用函数,返回可调用函数计算结果为 True 的名称。有效可调用参数的示例是 lambda x: x.upper() in ['AAA', 'BBB', 'DDD']。使用此参数可以显著加快解析时间和降低内存使用。

  • chunk_bytes (int, float or str, optional) -- 块字节数。

  • gpu (bool, default False) -- 是否读取到 cudf DataFrame。

  • head_bytes (int, float or str, optional) -- 用于文件头部的数据推理的字节数。

  • head_lines (int, optional) -- 用于文件头部的数据推理的行数。

  • default_index_type ({None, 'range', 'incremental'}, default None) -- 如果未指定 index_col,则指定要生成的索引类型。如果未指定,将使用 options.dataframe.default_index_type

  • dtype_backend ({'numpy', 'pyarrow'}, default 'numpy') -- 应用于结果 DataFrame 的后端数据类型(仍处于实验阶段)。

  • storage_options (dict, optional) -- 存储连接的选项。

  • merge_small_files (bool, default True) -- 合并大小较小的文件。

  • merge_small_file_options (dict) -- 合并小文件的选项

返回:

JSON 文件作为具有标记轴的二维数据结构返回。

返回类型:

DataFrame or Series

参见

to_json

将 DataFrame 转换为 JSON 字符串。

json_normalize

将半结构化 JSON 数据规范化为平面表。

示例

>>> import maxframe.dataframe as md
>>> md.read_json('data.json')
>>> # read from HDFS
>>> md.read_json('hdfs://localhost:8020/test.json')
>>> # read from OSS
>>> md.read_json('oss://oss-cn-hangzhou.aliyuncs.com/bucket/test.json',
>>>             storage_options={'role_arn': 'acs:ram::xxxxxx:role/aliyunodpsdefaultrole'})