python实现提取str字符串/json中多级目录下的某个值
时间: 2023-09-03 13:04:00 浏览: 54
在Python中,提取字符串或JSON中多级目录下的某个值可以使用递归或迭代的方式来实现。
如果是提取字符串中的某个值,可以使用字符串的find()或split()等方法进行操作。
例如,假设有一个字符串str_data = "name='John', age=30, address={'street':'123 Main St', 'city':'New York'}",想要提取出address中的city值。
可以使用find()方法找到address的位置,然后使用字符串切割方法split()提取出address部分,并使用eval()将其转换为字典。最后,通过键名'city'提取出具体的值。
具体代码如下:
str_data = "name='John', age=30, address={'street':'123 Main St', 'city':'New York'}"
idx_address = str_data.find("address")
sub_str = str_data[idx_address:]
starting_idx = sub_str.find("{") + 1
ending_idx = sub_str.find("}")
address_str = sub_str[starting_idx:ending_idx]
address_dict = eval(address_str)
city_value = address_dict['city']
上述代码中,首先使用find()方法找到字符串中address的位置,然后使用切割方法split()提取出address部分,接着使用eval()将其转换为字典。
最后,通过键名'city'提取出最终的值。
如果是提取JSON中多级目录下的某个值,可以使用Python库中的json模块来完成。
例如,假设有一个JSON数据json_data = {"name": "John", "age": 30, "address": {"street": "123 Main St", "city": "New York"}},想要提取出address中的city值。
可以使用json模块中的loads()方法将JSON数据转换为Python字典,然后通过键名'address'和'city'提取出具体的值。
具体代码如下:
import json
json_data = '{"name": "John", "age": 30, "address": {"street": "123 Main St", "city": "New York"}}'
data_dict = json.loads(json_data)
city_value = data_dict['address']['city']
上述代码中,首先使用json模块中的loads()方法将JSON数据转换为Python字典。然后,通过键名'address'和'city'提取出最终的值。
通过以上两种方式,可以在Python中实现提取字符串或JSON中多级目录下的某个值。