学网站建设与管理好吗临时手机号注册网站
文章目录
- 引言
 - JSON 数据的五种常见结构
 - 1. `'split'` 结构
 - 2. `'records'` 结构
 - 3. `'index'` 结构
 - 4. `'columns'` 结构
 - 5. `'values'` 结构
 
引言
在日常生活中,我们经常与各种数据打交道,无论是从网上购物的订单信息到社交媒体上的动态更新。JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛应用于互联网服务中。Pandas 是 Python 中用于数据分析的强大库,它能够轻松处理 JSON 数据,并将其转换为易于操作的数据表格形式——DataFrame。
JSON 数据的五种常见结构
1. 'split' 结构
 
假设您正在整理家庭开支记录,您的 JSON 文件可能像这样组织,分为索引、列名和数据值三个部分。
JSON 示例:
{"index": ["超市", "餐厅"],"columns": ["支出金额", "日期"],"data": [[120, "2024-11-01"], [85, "2024-11-02"]]
}
 
Pandas 代码及输出结果:
import pandas as pdjson_split = '{"index": ["超市", "餐厅"], "columns": ["支出金额", "日期"], "data": [[120, "2024-11-01"], [85, "2024-11-02"]]}'
df_split = pd.read_json(json_split, orient='split')
print(df_split)
 
输出结果示例:
       支出金额        日期
超市       120  2024-11-01
餐厅        85  2024-11-02
 
2. 'records' 结构
 
如果您有多个朋友的联系方式列表,每条记录可以是一个包含所有字段的字典。
JSON 示例:
[{"姓名": "李华", "电话": "12345678"},{"姓名": "王伟", "电话": "87654321"}
]
 
Pandas 代码及输出结果:
json_records = '[{"姓名": "李华", "电话": "12345678"}, {"姓名": "王伟", "电话": "87654321"}]'
df_records = pd.read_json(json_records, orient='records')
print(df_records)
 
输出结果示例:
   姓名       电话
0  李华  12345678
1  王伟  87654321
 
3. 'index' 结构
 
想象一下,您有一个书籍收藏列表,其中每一本书都有一个唯一的编号作为索引。
JSON 示例:
{"书1": {"标题": "Python编程", "作者": "张三"},"书2": {"标题": "数据分析入门", "作者": "李四"}
}
 
Pandas 代码及输出结果:
json_index = '{"书1": {"标题": "Python编程", "作者": "张三"}, "书2": {"标题": "数据分析入门", "作者": "李四"}}'
df_index = pd.read_json(json_index, orient='index')
print(df_index)
 
输出结果示例:
      标题         作者
书1  Python编程     张三
书2  数据分析入门     李四
 
4. 'columns' 结构
 
考虑一个情景,您正在记录每周的天气情况,以列为单位存储温度和湿度等信息。
JSON 示例:
{"温度": {"周一": 22, "周二": 20},"湿度": {"周一": 58, "周二": 60}
}
 
Pandas 代码及输出结果:
json_columns = '{"温度": {"周一": 22, "周二": 20}, "湿度": {"周一": 58, "周二": 60}}'
df_columns = pd.read_json(json_columns, orient='columns')
print(df_columns)
 
输出结果示例:
      温度  湿度
周一    22   58
周二    20   60
 
5. 'values' 结构
 
最后,如果您的数据是简单的二维数组,不包括任何索引或列名信息。
JSON 示例:
[[22, 58], [20, 60]]
 
Pandas 代码及输出结果:
json_values = '[[22, 58], [20, 60]]'
df_values = pd.read_json(json_values, orient='values')
print(df_values)
 
输出结果示例:
   0   1
0  22  58
1  20  60
