为了账号安全,请及时绑定邮箱和手机立即绑定

值中不带引号的字典的字符串表示

值中不带引号的字典的字符串表示

PIPIONE 2022-12-20 14:22:34
我正在尝试创建一个可以评估为字典的字符串,例如:'{"key1": val1, "key2": val2}'我第一次尝试:str({key: "val%d" % i for i, key in enumerate(args)})这主要是有效的,除了而不是val1我得到'val1'。我也许可以用 for 循环做一些事情,但感觉很尴尬。有更好的方法吗?不幸的是我不能只是腌制字典,它需要是一个有效的 Python 字典。
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

不漂亮,但完成你正在寻找的东西:


args = ["key1", "key2"]


your_attempt = str({key: "val%d" % i for i, key in enumerate(args)})

# outputs: "{'key2': 'val1', 'key1': 'val0'}"


your_attempt.replace("': '","': ").replace("', '",", '").replace("'}","}")

# outputs: "{'key2': val1, 'key1': val0}"


查看完整回答
反对 回复 2022-12-20
?
暮色呼如

TA贡献1853条经验 获得超9个赞

为了标准化,我建议使用内置的 json 库来编码和解码您的信息字符串。


>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])

'["foo", {"bar": ["baz", null, 1.0, 2]}]'

>>> json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')

['foo', {'bar': ['baz', None, 1.0, 2]}]

该json模块可以很好地处理请求、泡菜等,并可以通过为您实施格式化协议来帮助您避免头痛和错误。




查看完整回答
反对 回复 2022-12-20
?
呼如林

TA贡献1798条经验 获得超3个赞

eval()如果这是你想要的,你可以使用:


val1 = "one"

val2 = "two"

test = '{"key1": val1, "key2": val2}'

test_dict = eval(test)

print(test_dict)

# {'key1': 'one', 'key2': 'two'}


查看完整回答
反对 回复 2022-12-20
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信