处理JSON字符串是Python语言的一个常见任务,但是不应该使用内置的eval()函数来解决它。eval()会执行传递给它的字符串,这可能会导致代码注入攻击。相反,我们应该使用Python自带的json库中的loads()函数来解决这个问题。
处理JSON字符串的一般步骤如下:
- 引入json库:
import json
- 用json.loads()函数解析JSON字符串为Python对象
json_obj = '{"name":"John", "age":30, "city":"New York"}'
parsed_json = json.loads(json_obj)
- 使用Python对象中的值
print(parsed_json["name"]) # 输出 "John"
print(parsed_json["age"]) # 输出 30
print(parsed_json["city"]) # 输出 "New York"
以下是一些示例,演示如何使用Python的json库解析JSON字符串:
示例1:
import json
# 定义一个JSON字符串
json_str = '{"name": "Alex", "age": 30, "city": "Beijing"}'
# 使用json.loads()函数把JSON字符串转化为Python字典
data = json.loads(json_str)
# 打印Python字典data中的值
print("Name:", data['name'])
print("Age:", data['age'])
print("City:", data['city'])
输出:
Name: Alex
Age: 30
City: Beijing
示例2:
import json
# 定义一个JSON字符串
json_str = '{"fruits": ["apple", "banana", "orange"], "vegetables": ["carrot", "pepper", "lettuce"]}'
# 使用json.loads()函数把JSON字符串转化为Python字典
data = json.loads(json_str)
# 打印Python字典data中的值
print("Fruits:", ', '.join(data['fruits']))
print("Vegetables:", ', '.join(data['vegetables']))
输出:
Fruits: apple, banana, orange
Vegetables: carrot, pepper, lettuce
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python处理json字符串(使用json.loads而不是eval()) - Python技术站