首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串中的json转换为好json格式

将字符串中的json转换为好json格式
EN

Stack Overflow用户
提问于 2021-07-14 04:06:48
回答 2查看 53关注 0票数 0

四组数据转换为json 1-2=3.4=0 6-7=8=0 10-11=12=13 14-15=16=0的不同格式

代码语言:javascript
复制
`1-2=3.4=0`  `6-7=8=0`    `10-11=12=13`
a:, "1-2"    a:,"6-7"     a:,"10-11" 
b:, "3.4"    b:,"8"       b:,"12"
c:, "0"      c:,"0"       c:,"13"

原始数据

代码语言:javascript
复制
x = {'OUT': '091309@@@;1-2=3.4=0;6-7=8=0;10-11=12=13;14-15=16=0'}

python代码

代码语言:javascript
复制
import json
x = json.dumps(x)
tmp = json.loads(x)
print(tmp.keys())

检索密钥

代码语言:javascript
复制
tmp['OUT']

'091309@@@;1-2=3.4=0;6-7=8=0;10-11=12=13;14-15=16=0'

预期结果

代码语言:javascript
复制
x = {'OUT':"091309@@@{'a': '1-2','b': '3.4','c': '0'},{'a': '6-7','b': '8','c': '0'},{'a': '10-11','b': '12','c': '13'},{'a': '14-15','b': '16','c': '0'}"}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-14 04:39:05

试试regex

代码语言:javascript
复制
import re
import json

x = {'OUT': '091309@@@;1-2=3.4=0;6-7=8=0;10-11=12=13;14-15=16=0'}

parsed_data = re.findall(r'([\d.]+-[\d.]+)=([\d.]+)=([\d.]+)', x['OUT'])

x['OUT'] = x['OUT'].split(';')[0] + ','.join(str(dict(zip(['a', 'b', 'c'], i))) for i in parsed_data)

x
代码语言:javascript
复制
{'OUT': "091309@@@{'a': '1-2', 'b': '3.4', 'c': '0'},{'a': '6-7', 'b': '8', 'c': '0'},{'a': '10-11', 'b': '12', 'c': '13'},{'a': '14-15', 'b': '16', 'c': '0'}"}

regex发现这里的详细信息

票数 1
EN

Stack Overflow用户

发布于 2021-07-14 04:32:49

IIUC,以下是将原始数据转换为预期结果的一种方法:

代码语言:javascript
复制
x['OUT'] = x['OUT'].split(';')[0] + ','.join(
    str(dict(zip(['a', 'b', 'c'], i.split('=')))) for i in x['OUT'].split(';')[1:])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68371909

复制
相关文章

相似问题

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