获取到一个数据结构为['{"key":value}'] 这样的类型,通过for循环拿到了'{"key":value}',请问怎么可以去掉str,拿到里面的字典
另外一个,json模块了解一下。
楼上有推荐使用eval的,虽然可行,但是有2个问题。一是效率低二是不安全。
"拿到里面的字典" ? 字典?
string split 请了解一下 (7条消息) Python split()笔记(分割字符串)_Mr_Bobcp的博客-CSDN博客_python split提取
split 分割完又恢复了原样
eval() 了解一下
用ast库中的literal_eval()函数,例:
a=['{"a":1}','{"b":2}','{"c":"ok"}']
x=[]
for item in a:
x.append(literal_eval(item))#literal_eval(item)为字典型
print(type(literal_eval(item)))
print(x)
使用eval 函数, 它可将传入的字符串当做Python语句执行一下, 当然也不能有语法错误
放在你这的应用就是从列表中取出字符串 '{"key":value}', 然后放入eval函数中就能转变成字典了
res = eval(['{"key":"value"}'][0])
print(res) # {'key': 'value'}
print(type(res)) # <class 'dict'>
字符串split方法和字符串截取配合着用就行了,这个很简单,多练习就行!
table = [
'{"key1":value1}',
'{"key2":value2}',
'{"key3":value3}',
'{"key4":value4}',
'{"key5":value5}',
]
def list_to_dict(li):
dic = {}
for i in li:
a = i.split(':',1)
dic[a[0][2:-1]]=a[1][0:-1:1]
return dic
print(list_to_dict(table))