It is necessary to add double quotes for the key and value in the dictionary. I tried to do it with regular expressions, but I'm not good at it ( The dictionary can be of two types 1) a = {x: 2, y: 1, z: -3, b: 1} 2) a = {x: 226/185, y: 9/37, z: -409/185, b: 133/185} We need to find a universal solution for both types.
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}
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)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.