如何在Python中从JSON提取单个值并传递给渲染模板
在Python中提取字典列表中的字段值(无需解析为JS对象)
没问题,这事儿在Python里完全不用碰JavaScript对象那套,直接用Python本身的列表和字典操作就能轻松搞定!
第一步:确认你的数据结构
你给出的示例其实是Python的列表嵌套字典(不是严格的JSON字符串,JSON要求用双引号),所以不需要额外解析,直接当作Python变量来操作就行:
# 假设你的results_activity是这样的 results_activity = [{'address': '123 Any Street', 'province': 'ON', 'postal_code': 'L1P 2X2', 'co': 'BURL'}]
第二步:提取单个字段值
因为数据是列表包裹的字典,先取列表里的第一个元素(索引为0),再通过键名提取对应的值:
# 先取出列表中的字典项(如果列表可能为空,记得加判断,后面会说) location_info = results_activity[0] # 逐个提取需要的字段 address = location_info['address'] province = location_info['province'] postal_code = location_info['postal_code'] co = location_info['co']
如果想更简洁,也可以一行直接提取:
address = results_activity[0]['address'] province = results_activity[0]['province']
第三步:安全处理(避免报错)
如果results_activity有可能是空列表,或者字典里某个键可能不存在,建议用get()方法来设置默认值,防止程序报错:
if results_activity: location_info = results_activity[0] # 用get()方法,第二个参数是键不存在时的默认值 address = location_info.get('address', '未提供地址') province = location_info.get('province', '未提供省份') postal_code = location_info.get('postal_code', '未提供邮编') co = location_info.get('co', '未提供代码') else: # 列表为空时的默认值 address = province = postal_code = co = '无数据'
第四步:传递给渲染模板
不管你用的是Flask、Django还是其他模板引擎,直接把提取好的变量传进去就行。比如Flask里的写法:
from flask import render_template # (前面的提取代码) return render_template('your_page.html', address=address, province=province, postal_code=postal_code, co=co)
这样在模板里就能直接用{{ address }}、{{ province }}这类变量来渲染内容啦!
内容的提问来源于stack exchange,提问作者Harmeet Kaur
相关产品推荐
相关产品推荐

