4 回答
TA贡献1824条经验 获得超6个赞
您可以使用re.findall获取所有匹配值对,然后将该列表转换为dict:
import re
s = 'a:b# c:d# e:f#'
d = dict(re.findall(r'(\w+):(\w+)#', s))
print(d)
输出:
{'a': 'b', 'c': 'd', 'e': 'f'}
要将其转换为 JSON 字符串,请使用json.dumps:
import json
print(json.dumps(d))
输出:
{"a": "b", "c": "d", "e": "f"}
TA贡献1780条经验 获得超4个赞
删除#,然后在空间上拆分以获得零件,然后拆分:以配对映射
s = 'a:b# c:d# e:f#'
res = dict(v.split(':') for v in s.replace("#", "").split())
print(res) # {'a': 'b', 'c': 'd', 'e': 'f'}
TA贡献1847条经验 获得超11个赞
这不是最快/最短的解决方案。但是我认为它可能是最容易被初学者理解的。
然后,您可以根据需要缩短/优化代码。
你的问题由两部分组成。
1.) 如何将特定格式的字符串转换为 python 数据结构
2.) 如何将 python 数据结构转换为 json
import json
def my_parse(data_str):
result = {}
entries = data_str.split('#') # split input by '#'
for entry in entries:
entry = entry.strip() # remove leading and trailing white space
if entry: #
key, val = entry.split(":")
# cleanup key and val. (strip off spaces) perhaps you don't need this
key = key.strip()
val = val.strip()
result[key] = val # add to our dict
return result
example_data = 'a:b# c:d# e:f#'
rslt_dict = my_parse(example_data)
print("result dict is", rslt_dict)
# convert to json string.
json_str = json.dumps(rslt_dict)
# or directly write json to file
with(open("myjsonfile.json", "w")) as fout:
json.dump(rslt_dict, fout)
TA贡献1826条经验 获得超6个赞
import re
import json
str = 'a:b# c:d# e:f#' # input string
kv = re.compile("(\w):(\w)") # prepare regular expression
l = kv.findall(str) # find all <key>:<value> pairs
d = dict(l) # convert list to dict
j = json.dumps(d) # generate JSON
print( d )
印刷
{'a': 'b', 'c': 'd', 'e': 'f'}
添加回答
举报
