2025年3月27日 星期四 甲辰(龙)年 月廿六 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python dict转json

时间:01-16来源:作者:点击数:55

python小数

可以使用round()函数。

round(a,2)即表示a保留两位小数

张量转常量

深度学习中经常遇到变量和常量转换的问题,可以使用item()函数,

关于x.item()用法:

文档中给了例子,说是一个元素张量可以用item得到元素值,请注意这里的print(x)和print(x.item())值是不一样的,一个是打印张量,一个是打印元素:

  • x = torch.randn(1)
  • print(x)
  • print(x.item())
  • #结果是
  • tensor([-0.4464]) # 为张量
  • -0.44643348455429077 # 为常量
  • #

json显示在页面上

  • # -*- encoding: utf-8 -*-
  • from flask import Flask, render_template
  • app = Flask(__name__)
  • @app.route('/')
  • def index():
  • Res['num'] = 1
  • Res['bboxes'] = bboxes_n # 参数自己设置,我是用bbox坐标的
  • Res['predtime'] = round(r_time, 2)
  • # 使用render_template模块来渲染模板文件,通过第二个参数传递数据变量
  • # return render_template('day3.html', my_shijei=my_str, myint=my_int, mydict=my_dict, mylist=my_list)
  • # 通过**引用来将嵌套dict直接传递给模板
  • return render_template('template.html', **Res)
  • if __name__ == "__main__":
  • app.run(host='0.0.0.0', port=5000, debug=True, processes=True)
  • <!DOCTYPE html>
  • <title>File Browser</title>
  • <h1>File Browser</h1>
  • <p>URL: {{ file_url }}</p>
  • <p>num: {{ num }}</p>
  • {% for i in bboxes %}
  • <p>bbox : {{i}}</p>
  • {% endfor %}
  • <p>predtime: {{ predtime }}s</p>

json.dump()报一些float32的错误

json中包含numpy类型等参数时,dumps转换时会报错,需要自己定义一个转换函数。

TypeError: Object of type ‘int64’ is not JSON serializable (或者float32)

  • # 首先,继承json.JSONEncoder,自定义序列化方法。
  • class NpEncoder(json.JSONEncoder):
  • def default(self, obj):
  • if isinstance(obj, np.integer):
  • return int(obj)
  • elif isinstance(obj, np.floating):
  • return float(obj)
  • elif isinstance(obj, np.ndarray):
  • return obj.tolist()
  • else:
  • return super(NpEncoder, self).default(obj)
  • # 使用dumps方法(我们可以直接把dict直接序列化为json对象)加上 cls=NpEncoder,data就可以正常序列化了
  • json_res = json.dumps(Res, ensure_ascii=False, cls=NpEncoder)

json 与 dict的读写转换

  • # dict转json
  • import json
  • names = ['joker','joe','nacy','timi']
  • filename='names.json'
  • with open(filename,'w') as file_obj:
  • json.dump(names,file_obj)
  • # json文件转dict
  • filename='names.json'
  • with open(filename) as file_obj:
  • names = json.load(file_obj)
  • print(names)
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门