如何用Python获取列表最后一个值及Python 3.6提取嵌套JSON指定值?
关于Python列表取值和JSON数据提取的问题解答
嘿,我来帮你一步步搞定这两个问题:
一、如何获取列表中的最后一个值?
Python里有两种实用又简单的方法:
- 直接用负索引
-1:这是最常用的方式,不会修改原列表,直接定位最后一个元素。举个例子:my_list = [10, 20, 30, 40] last_element = my_list[-1] print(last_element) # 输出: 40 - 使用
pop()方法:这个方法会取出最后一个元素,同时把它从原列表里移除,如果不需要保留原列表的最后一项,可以用它:my_list = [10, 20, 30, 40] last_element = my_list.pop() print(last_element) # 输出: 40 print(my_list) # 输出: [10,20,30]
二、从给定数据中提取"1.0"值
先提个小细节:你给出的data和data1写法有问题哦——它们用了键值对结构,但外面套的是列表[],应该改成字典{}才符合Python语法,不然会直接报错。修正后的正确结构是:
data = {'reply': '{"osc":{"version":"1.0"}}'} data1 = {'reply':'{"device":{"network":{"ipv4_dante":{"auto":"1.0"}}}}'}
接下来要提取里面的"1.0",因为reply对应的是JSON格式的字符串,我们需要用Python内置的json模块来解析它,具体步骤如下:
- 导入
json模块; - 从字典中取出
reply对应的JSON字符串; - 用
json.loads()把字符串转换成Python字典; - 逐层访问字典的键,拿到目标值。
针对data的提取代码:
import json data = {'reply': '{"osc":{"version":"1.0"}}'} # 解析JSON字符串为Python字典 reply_content = json.loads(data['reply']) # 逐层取值 target_value = reply_content['osc']['version'] print(target_value) # 输出: 1.0
针对data1的提取代码:
import json data1 = {'reply':'{"device":{"network":{"ipv4_dante":{"auto":"1.0"}}}}'} reply_content = json.loads(data1['reply']) target_value = reply_content['device']['network']['ipv4_dante']['auto'] print(target_value) # 输出: 1.0
如果担心中间某个键不存在导致报错,还可以用dict.get()方法做容错处理,比如:
target_value = reply_content.get('osc', {}).get('version', '未找到对应值')
这样就算某个键不存在,也会返回你指定的默认值,而不是直接抛出异常。
内容的提问来源于stack exchange,提问作者nrs
相关产品推荐
相关产品推荐

