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']。使用此参数可以显著加快解析时间和降低内存使用。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 文件作为具有标记轴的二维数据结构返回。
- 返回类型:
参见
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'})