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

如何使用python将自定义字符串转换为json?

如何使用python将自定义字符串转换为json?

慕的地6264312 2023-02-07 11:04:49
我有一个如下所示的字符串:'a:b# c:d# e:f#'how to convert this into json like = {'a':'b','c':'d','e':'f'}using python. 任何帮助表示赞赏。TIA。
查看完整描述

4 回答

?
慕妹3242003

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"}


查看完整回答
反对 回复 2023-02-07
?
Helenr

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'}


查看完整回答
反对 回复 2023-02-07
?
回首忆惘然

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)


查看完整回答
反对 回复 2023-02-07
?
跃然一笑

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'}


查看完整回答
反对 回复 2023-02-07
  • 4 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号