使用JSON格式化Python列表

时间:2019-07-13 13:18:11

标签: python json

我是Python的新手,试图将信息从Excel文件转换为JSON输出。

我正在尝试解析此Python列表:

value = ['Position: Backstab, Gouge,', 'SumPosition: DoubleParse, Pineapple']

转换为这种JSON格式:

"value": [
      {
        "Position": [
          "Backstab, Gouge,"
        ]
      },
      {
        "SumPosition": [
          "DoubleParse, Pineapple"
        ]
      }
    ]

请注意:

此列表以前是一个字符串:

value = 'Position: Backstab, Gouge, SumPosition: DoubleParse, Pineapple'

我通过使用re.split()变成一个列表。

我已经使用re.split将字符串转换为列表,但是我仍然无法将字符串内部转换为dict,而将字典中的值转换为列表。

那有可能吗?是使用JSON格式化列表/字符串格式,还是预先准备字符串本身以便可以接收json.dump方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以遍历列表以获得所需的结果。

d = {'value': []}
for val in value:
    k, v = val.split(':')
    tmp = {k.strip() : [v.strip()]}
    d['value'].append(tmp)

print(d)

{'value': [{'Position': ['Backstab, Gouge,']},
  {'SumPosition': ['DoubleParse, Pineapple']}]}

答案 1 :(得分:0)

这是一种快速的方法。

value = ['Position: Backstab, Gouge,',
         'SumPosition: DoubleParse, Pineapple']

dictionary_result = {}
for line in value:
    key, vals = line.split(':')
    vals = vals.split(',')
    dictionary_result[key] = vals

剩下的工作:从[' Backstab', ' Gouge', '']之类的结果列表中删去空字符串,然后将数据从Python dict实际转换为JSON文件