有必要在字典中为键和值添加双引号。 我尝试使用正则表达式来做到这一点,但我并不擅长( 字典可以是两种类型:1)a = {x:2,y:1,z:-3,b:1} 2)a = {x:226/185,y:9/37,z:-409/185,b:133/185} 我们需要找到两种类型的通用解决方案。
gg={x: 2, y: 1, z: -3, b: 1}
gg1={x: 226/185, y: 9/37, z: -409/185, b: 133/185}
nn="{x: 2, y: 1, z: -3, b: 1}"
nn2="{x: 226/185, y: 9/37, z: -409/185, b: 133/185}"
yy=re.sub(r'(\w*): (\d*)',r'"\1": "\2"',nn)
yy2=re.sub(r'(\w*): (\d*)',r'"\1": "\2"',nn2)
print(yy)
print(yy2)
{“ x”:“ 2”,“ y”:“ 1”,“ z”:“ -3,” b“:” 1“} {“ x”:“ 226” / 185,“ y”:“ 9” / 37,“ z”:“” -409/185,“ b”:“ 133” / 185}
答案 0 :(得分:1)
import re
nn="{x: 2, y: 1, z: -3, b: 1}"
nn2="{x: 226/185, y: 9/37, z: -409/185, b: 133/185}"
dict_str = lambda data : re.sub(r'(\w+):\s*(-?\d[\d/.]*)',r'"\1": "\2"',data)
for i in [nn,nn2] :
var1=dict_str(i)
print(var1)
# if you want an actual dictionary from var1 you can uncomment the lines below
#var2 = var1.replace('{','').replace('}','').replace('"','')
#var3 ={ j.split(':')[0] : j.split(':')[1] for j in [ k for k in
#var1.split(',') ] }
#print(var3)