Как добавить двойные кавычки в словарь? - PullRequest
0 голосов
/ 01 апреля 2019

Необходимо добавить двойные кавычки для ключа и значения в словаре. Я пытался сделать это с помощью регулярных выражений, но я не силен в этом ( Словарь может быть двух типов: 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}

1 Ответ

1 голос
/ 01 апреля 2019
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...