Python 操作 json

本文介绍了如何使用Python的simplejson模块进行JSON数据的序列化与反序列化操作,并提供了具体的安装步骤与实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装

      pip install simplejson


2、实例

     import simplejson as json


     # 转换成json串

     json.dumps(['foo', {'bar': ('baz', '白菜', 1.0, 2)}])

    

    # json 解析

    obj = json.loads("['foo', {'bar': ('baz', '白菜', 1.0, 2)}]")

    print obj[0]  # 结果为: foo


来源: https://pypi.python.org/pypi/simplejson

===================  请关注  ========================

                                           

### Python 操作 JSON 文件 示例 以下是关于如何使用 Python 处理 JSON 数据的详细说明以及示例代码。 #### 将 JSON 字符串转换为 Python 对象 可以利用 `json` 模块中的 `loads()` 函数将 JSON 格式的字符串转化为 Python 的字典或其他结构化对象[^1]。 ```python import json # 假设我们有一个 JSON 格式的字符串 json_data = '{"name": "Alice", "age": 28, "hobbies": ["reading", "swimming"]}' # 使用 loads() 方法将 JSON 转换为 Python 字典 python_obj = json.loads(json_data) print(python_obj) # 输出:{'name': 'Alice', 'age': 28, 'hobbies': ['reading', 'swimming']} ``` #### 从文件中读取 JSON 数据 通过 `open()` 函数打开 JSON 文件,并调用 `load()` 方法来解析其中的内容。此方法适用于处理存储在本地磁盘上的 JSON 文件[^3]。 ```python import json with open('data.json', 'r', encoding='utf-8') as f: data = json.load(f) print(data) # 输出文件内容对应的 Python 对象 ``` #### 解析多层嵌套的 JSON 结构 如果需要提取特定字段或者更深层次的信息,则可以通过编写自定义函数实现这一目标[^2]。 ```python def parse_json(file_path, key1, key2): result_list = [] with open(file_path, 'r', encoding='utf-8') as f: content = json.load(f) for item in content.values(): try: value_pair = (item[key1], item[key2]) result_list.append(value_pair) except KeyError: continue return result_list if __name__ == "__main__": extracted_info = parse_json('example.json', 'username', 'email') print(extracted_info) ``` #### 向服务器发送 JSON 数据 当涉及到网络通信时,比如向 Web API 提交请求或将数据上传至远程服务端点等情况之下,可借助 HTTP 库完成任务;而 Tornado 是一种流行的异步框架用于构建高性能的服务程序,在其内部同样支持接收来自客户端提交过来经过序列化的 JSON 文本流并加以储存起来[^4]。 ```python from tornado.web import RequestHandler, Application from tornado.ioloop import IOLoop import os.path import json class UploadHandler(RequestHandler): def post(self): raw_body = self.request.body.decode('utf-8') received_dict = json.loads(raw_body) save_directory = './uploads/' filename = 'uploaded_data.json' full_filepath = os.path.join(save_directory, filename) if not os.path.exists(save_directory): os.makedirs(save_directory) with open(full_filepath, 'w+', encoding='utf-8') as output_file: json.dump(received_dict, output_file) application = Application([ ('/upload/', UploadHandler), ]) if __name__ == '__main__': application.listen(8080) IOLoop.current().start() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值