【问题标题】:convert string value to dictionary from pickled将字符串值从腌制转换为字典
【发布时间】:2015-04-21 18:30:04
【问题描述】:
val = "{t:30, f:50}" 

是一个字符串值,我需要将其转换为字典,而不是使用 val.split(',') 的传统方法,然后删除括号并取出键并将值绑定到它并在字典中转换它。任何人都可以提出任何更好的方法来解决它。 PLz 确实关心即使键(t 和 s)中的字符串中没有引号。从 db 中获取了一些值。已经尝试过 json 加载或转储。

【问题讨论】:

  • 使用 split() 的“常规”方法有什么问题?
  • 它不太聪明,因为我已经告诉过我们在拆分后也需要遵循几个步骤。就像从键中剥离括号等等,如所述
  • 由于格式不标准(例如,它不是有效的 json),我认为自己没有办法编写解析器,例如使用拆分()

标签: python python-2.7 python-3.x dictionary


【解决方案1】:
import re
x="{t:30, f:50}"
y=re.findall(r"([^ {,]*):([^ {,]*)[,}]",x)
print dict(y)

试试这个。简单一两步即可完成。

【讨论】:

  • 知道了,我还没有尝试过正则表达式谢谢@vks
【解决方案2】:
import re
val = "{t:30, f:50}"
t = re.search("[^{].*[^}]",val).group()
print (t)
z = t.split(",")
print (z)
mydict = {}
mydict[z[0][0]]=z[0][2]+z[0][3]
print (mydict)

>>> 
t:30, f:50
['t:30', ' f:50']
{'t': '30'}
>>> 

使用re模块的search()方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    相关资源
    最近更新 更多