Python如何将字符串转为字典

原始数据

data = '{"nodes":[{"id":-1,"name":"default","type":"root","type_id":11,"children":[-2,-3,-4]}]}'

# data类型是str,想要变为dict类型,去掉最外面的单引号
data_dict = {'nodes': [{'id': -1, 'name': 'default', 'type': 'root', 'type_id': 11, 'children': [-2, -3, -4]}]}

1、通过json转换

import json
data = '{"nodes":[{"id":-1,"name":"default","type":"root","type_id":11,"children":[-2,-3,-4]}]}'
data_dict = json.loads(data)
print(data_dict)
{'nodes': [{'id': -1, 'name': 'default', 'type': 'root', 'type_id': 11, 'children': [-2, -3, -4]}]}

# json虽然能解决我这个问题,但是用json有限制条件
json规定 数组或对象之中的字符串必须是用双引号,不能用单引号

test = "{'test': 'test_code'}"
test_dict = json.loads(test)
print(test_dict)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

# 所以json这种方法不可取

2、通过eval转换

data = '{"nodes":[{"id":-1,"name":"default","type":"root","type_id":11,"children":[-2,-3,-4]}]}'
print(eval(data))

test = "{'test': 'test_code'}"
print(eval(test))

# eval方法虽然没有转换问题,但存在安全性问题,因为eval不仅能解析数据类型还能解析一些恶意输入命令,可能造成不好的影响

3、通过literal_eval转换

import ast

data = '{"nodes":[{"id":-1,"name":"default","type":"root","type_id":11,"children":[-2,-3,-4]}]}'
print(ast.literal_eval(data))

test = "{'test': 'test_code'}"
print(ast.literal_eval(test))

# literal_eval只会执行合法的python类型,如果有问题会自动跑出去异常
  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,要使用二分法来匹配带有空白字符的字符串,可以按照以下步骤进行操作: 1. 首先,创建一个待搜索的有序字符串列表。为了能够使用二分法进行搜索,需要确保列表已按照字典顺序进行排序。 例如,我们创建一个有序字符串列表如下: ```python string_list = ['apple', 'banana', 'cherry', 'date', 'elephant', 'fruit'] ``` 2. 确定搜索的目标字符串。目标字符串可以是包含空白字符的任何字符串。 例如,我们的目标字符串为`'banana fruit'`。 3. 编写二分法函数来搜索目标字符串。二分法的基本思路是将目标字符串与列表中间位置的字符串进行比较,如果相等则匹配成功,如果目标字符串大于中间位置的字符串,则在后半部分继续搜索,否则在前半部分继续搜索。重复此过程直到找到匹配位置或搜索完整个列表。 下面是一个简单的二分法函数实现: ```python def binary_search(string_list, target_string): low = 0 high = len(string_list) - 1 while low <= high: mid = (low + high) // 2 guess = string_list[mid] if guess == target_string: return mid elif guess < target_string: low = mid + 1 else: high = mid - 1 return -1 ``` 4. 调用二分法函数来搜索目标字符串,并将结果打印出来。 ```python result = binary_search(string_list, 'banana fruit') if result != -1: print("找到匹配位置在索引: ", result) else: print("没有找到匹配位置") ``` 以上就是使用二分法来匹配带有空白字符的字符串的示例。注意,在实际应用中,需要根据具体需求对代码进行适当的修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想敲代码的运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值