- 用法:- pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=None, convert_axes=None, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, encoding_errors='strict', lines=False, chunksize=None, compression='infer', nrows=None, storage_options=None)
- 将 JSON 字符串转换为 pandas 对象。 - path_or_buf:有效的 JSON str、路径对象或 file-like 对象
- 任何有效的字符串路径都是可接受的。该字符串可以是一个 URL。有效的 URL 方案包括 http、ftp、s3 和文件。对于文件 URL,需要一个主机。本地文件可以是: - file://localhost/path/to/table.json。- 如果你想传入一个路径对象,pandas 接受任何 - os.PathLike。- 通过file-like 对象,我们指的是具有 - read()方法的对象,例如文件句柄(例如通过内置- open函数)或- StringIO。
- orient:str
- 指示预期的 JSON 字符串格式。 - to_json()可以生成兼容的 JSON 字符串,并带有相应的 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',- 允许的方向是 - {'split','records','index'}
- 默认为 - 'index'
- Series 索引对于 orient - 'index'必须是唯一的。
 
- 当 - typ == 'frame',- 允许的方向是 - {'split','records','index', 'columns','values', 'table'}
- 默认为 - 'columns'
- DataFrame 索引对于方向 - 'index'和- 'columns'必须是唯一的。
- 对于方位 - 'index'、- 'columns'和- 'records',DataFrame 列必须是唯一的。
 
 
- typ:{‘frame’, ‘series’},默认 ‘frame’
- 要恢复的对象的类型。 
- dtype:布尔或字典,默认无
- 如果为真,则推断数据类型;如果要 dtype 列的字典,则使用那些;如果为 False,则根本不推断 dtypes,仅适用于数据。 - 对于除 - 'table'之外的所有- orient值,默认值为 True。
- convert_axes:布尔值,默认无
- 尝试将轴转换为正确的 dtypes。 - 对于除 - 'table'之外的所有- orient值,默认值为 True。
- convert_dates:bool 或 str 列表,默认 True
- 如果为 True,则可以转换默认的 datelike 列(取决于keep_default_dates)。如果为 False,则不会转换任何日期。如果是列名列表,那么这些列将被转换,并且默认的类似日期的列也可能被转换(取决于keep_default_dates)。 
- keep_default_dates:布尔值,默认为真
- 如果解析日期(convert_dates 不是 False),则尝试解析默认的 datelike 列。列标签是 datelike 如果 - 它以 - '_at'结尾,
- 它以 - '_time'结尾,
- 它以 - 'timestamp'开头,
- 它是 - 'modified',或
- 它是 - 'date'。
 
- numpy:布尔值,默认为 False
- 直接解码为 numpy 数组。仅支持数字数据,但支持非数字列和索引标签。另请注意,如果 numpy=True,则每个术语的 JSON 排序必须相同。 
- precise_float:布尔值,默认为 False
- 设置为在将字符串解码为双精度值时启用更高精度 (strtod) 函数的使用。默认 (False) 是使用快速但不太精确的内置函数。 
- date_unit:str,默认无
- 检测是否转换日期的时间戳单位。默认行为是尝试检测正确的精度,但如果不需要,则传递 ‘s’, ‘ms’, ‘us’ or ‘ns’ 之一以强制分别仅解析秒、毫秒、微秒或纳秒。 
- encoding:str,默认为“utf-8”
- 用于解码 py3 字节的编码。 
- encoding_errors:str,可选,默认 “strict”
- 如何处理编码错误。 List of possible values 。 
- lines:布尔值,默认为 False
- 将文件作为每行的 json 对象读取。 
- chunksize:int 可选
- 返回JsonReader 对象进行迭代。有关 - chunksize的更多信息,请参阅 line-delimited json docs。只有在- lines=True时才能通过。如果这是无,文件将一次全部读入内存。
- compression:str 或 dict,默认 ‘infer’
- 用于on-disk 数据的即时解压缩。如果 ‘infer’ 和 ‘path_or_buf’ 是 path-like,则从以下扩展名检测压缩:“.gz”、“.bz2”、“.zip”、“.xz”或“.zst”(否则不压缩)。如果使用‘zip’,ZIP 文件必须只包含一个要读入的数据文件。设置为 - None不解压缩。也可以是键- 'method'设置为 {- 'zip'、- 'gzip'、- 'bz2'、- 'zstd'} 之一的字典,其他键值对被转发到- zipfile.ZipFile、- gzip.GzipFile、- bz2.BZ2File或- zstandard.ZstdDecompressor,分别。例如,可以使用自定义压缩字典为 Zstandard 解压缩传递以下内容:- compression={'method': 'zstd', 'dict_data': my_compression_dict}。
- nrows:int 可选
- line-delimited jsonfile 中必须读取的行数。只有在 - lines=True时才能通过。如果这是 None,则将返回所有行。
- storage_options:字典,可选
- 对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对作为标头选项转发到 - urllib。对于其他 URL(例如以 “s3://” 和 “gcs://” 开头),键值对被转发到- fsspec。有关详细信息,请参阅- fsspec和- urllib。
 
- 系列或DataFrame
- 返回的类型取决于 - typ的值。
 
 - 参数:- 返回:- 注意:- 特定于 - orient='table',如果带有文字- Index名称为- index的- DataFrame被写入- to_json(),则后续读取操作将错误地将- Index名称设置为- None。这是因为- DataFrame.to_json()也使用- index来表示缺少的- Index名称,后续的- read_json()操作无法区分两者。- MultiIndex和任何以- 'level_'开头的名称都会遇到相同的限制。- 例子:- >>> df = pd.DataFrame([['a', 'b'], ['c', 'd']], ... index=['row 1', 'row 2'], ... columns=['col 1', 'col 2'])- 使用 - 'split'格式的 JSON 编码/解码数据帧:- >>> df.to_json(orient='split') '{"columns":["col 1","col 2"],"index":["row 1","row 2"],"data":[["a","b"],["c","d"]]}' >>> pd.read_json(_, orient='split') col 1 col 2 row 1 a b row 2 c d- 使用 - 'index'格式的 JSON 编码/解码数据帧:- >>> df.to_json(orient='index') '{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}'- >>> pd.read_json(_, orient='index') col 1 col 2 row 1 a b row 2 c d- 使用 - 'records'格式的 JSON 编码/解码数据帧。请注意,此编码不会保留索引标签。- >>> df.to_json(orient='records') '[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]' >>> pd.read_json(_, orient='records') col 1 col 2 0 a b 1 c d- 使用表模式编码 - >>> df.to_json(orient='table') '{"schema":{"fields":[{"name":"index","type":"string"},{"name":"col 1","type":"string"},{"name":"col 2","type":"string"}],"primaryKey":["index"],"pandas_version":"1.4.0"},"data":[{"index":"row 1","col 1":"a","col 2":"b"},{"index":"row 2","col 1":"c","col 2":"d"}]}'
相关用法
- Python pandas.read_pickle用法及代码示例
- Python pandas.read_hdf用法及代码示例
- Python pandas.read_xml用法及代码示例
- Python pandas.read_table用法及代码示例
- Python pandas.read_sql_table用法及代码示例
- Python pandas.read_excel用法及代码示例
- Python pandas.read_fwf用法及代码示例
- Python pandas.read_stata用法及代码示例
- Python pandas.read_sql用法及代码示例
- Python pandas.read_csv用法及代码示例
- Python pandas.read_html用法及代码示例
- Python pandas.arrays.IntervalArray.is_empty用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.api.types.is_timedelta64_ns_dtype用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
- Python pandas.DataFrame.combine_first用法及代码示例
- Python pandas.Index.value_counts用法及代码示例
- Python pandas.DatetimeTZDtype用法及代码示例
- Python pandas.DataFrame.cumsum用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.read_json。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
