【发布时间】:2025-12-11 07:30:01
【问题描述】:
我有以下string 作为输入:
'name SP2, status Online, size 4764771 MB, free 2576353 MB, path /dev/sde, log 210 MB, port 5660, guid 7478a0141b7b9b0d005b30b0e60f3c4d, clusterUuid -8650609094877646407--116798096584060989, disks /dev/sde /dev/sdf /dev/sdg, dare 0'
我编写了使用python 将其转换为dictionary 的函数:
def str_2_json(string):
str_arr = string.split(',')
#str_arr{0} = name SP2
#str_arr{1} = status Online
json_data = {}
for i in str_arr:
#remove whitespaces
stripped_str = " ".join(i.split()) # i.strip()
subarray = stripped_str.split(' ')
#subarray{0}=name
#subarray{1}=SP2
key = subarray[0] #key: 'name'
value = subarray[1] #value: 'SP2'
json_data[key] = value
#{dict 0}='name': SP2'
#{dict 1}='status': online'
return json_data
return 将dictionary 变成json(它有jsonfiy)。
有没有一种简单/优雅的方法可以做得更好?
【问题讨论】:
-
这些值中的任何一个都可以嵌入逗号吗?如果可以,是否以某种方式转义?首先对字符串进行编码的规则是什么?
-
这在我得到的输入中,我无法改变它,所以我只能使用它
-
但问题是关于创建数据的规则。有很多问题,比如一个字段是否可以嵌入逗号,像
name这样的单值事物是否在列表中,disks是否应该始终在列表中等等......
标签: json python-3.x string dictionary converters