Python3处理JSON格式的数据

JSON字符串与字典互相转换

[
  {
    "name": "iPhone9",
    "price": 9999,
    "count": 3000
  },
  {
    "name": "Tesla",
    "price": 800000,
    "count": 122
  }
]
import json

data = {'name': 'Alex', 'company': 'Google', 'age': 34}
# 将字典转换为JSON字符串
jsonStr = json.dumps(data)
print(type(jsonStr))  # <class 'str'>
print(jsonStr)  # {"name": "Alex", "company": "Google", "age": 34}

# 从json文件读取数据转换为字典
with open('products.json', 'r') as f:
    jsonStr = f.read()
    j_obj = json.loads(jsonStr)
    print(type(j_obj))  # <class 'list'>
    for k in j_obj:
        print(type(k))  # <class 'dict'>
        for key, val in k.items():
            print("%s --> %s" % (key, val))

类实例列表与JSON字符串互相转换(json文件数据同上)

class Product:
    def __init__(self, dic):
        self.__dict__ = dic


f = open('products.json', 'r')
jsonStr = f.read()
# 将JSON字符串转换为Product对象列表
products = json.loads(jsonStr, object_hook=Product)
for p in products:
    print('name = ', p.name)
    print('price = ', p.price)
    print('count = ', p.count)
f.close()


# 定义将Product对象转换为字典的函数
def product2dict(product):
    return {
        'name': product.name,
        'price': product.price,
        'count': product.count
    }


# 将Product对象列表转换为JSON字符串
jsonStr = json.dumps(products, default=product2dict, ensure_ascii=False)
print(jsonStr)

转载于:https://my.oschina.net/zerobit/blog/3080918

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值