首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将带键和值的字符串转换为python的最有效方法

将带键和值的字符串转换为python的最有效方法
EN

Stack Overflow用户
提问于 2018-11-09 16:22:30
回答 4查看 140关注 0票数 1

如何转换字符串

代码语言:javascript
运行
复制
{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}

变成字典,就像

代码语言:javascript
运行
复制
{'Number of Contents in Sales Package':'Pack of 3'}?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-11-09 16:35:36

使用具有多个键值对的示例的re

代码语言:javascript
运行
复制
import re

s = """{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}, 
    {"key"=>"Number of Contents in Sales Package 2", "value"=>"Pack of 5"}"""

pattern = re.compile(r'''{"key"=>"(?P<key>.*?)", "value"=>"(?P<value>.*?)"}''')
dict(pattern.findall(s))

{“销售包中的内容数量”:“3包”,“销售包2中的内容数”:“5包”}

票数 2
EN

Stack Overflow用户

发布于 2018-11-09 16:26:14

您可以使用str.replaceast.literal_eval将字符串转换为字典,然后重构:

代码语言:javascript
运行
复制
from ast import literal_eval

x = '{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}'

d = literal_eval(x.replace('=>', ':'))
d = {d['key']: d['value']}

print(d)

{'Number of Contents in Sales Package': 'Pack of 3'}
票数 5
EN

Stack Overflow用户

发布于 2018-11-09 16:27:06

你可以这样做:

代码语言:javascript
运行
复制
result = dict([k_v.replace('"', '').split('=>')
               for k_v in string[1:-1].split(', ')])

这将要求您的数据以下列形式显示:

代码语言:javascript
运行
复制
'{key1=>value1, key2=>value2}'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53229554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档