【问题标题】:how to make the list data into formatted json in python如何在python中将列表数据转换为格式化的json
【发布时间】:2018-08-09 09:35:37
【问题描述】:

列表数据如下所示:

[
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0",
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Cross Site Scripting--->1.0",
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0",
    "message: // System.out.println(\"\" + bean.getBlockId());-->0.507092552837",
    "category: Denial of Service--->1.0",
    "message: * System.out.println(objects[0]); Long l =--->0.507092552837",
    "category: Cross Site Scripting--->1.0"
]

我希望将上面的列表数据转换为 json,看起来应该是这样的:

[
   {
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0"
   },
   {
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Cross Site Scripting--->1.0"
   },
   {
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0"
   },
   {
    "message: // System.out.println(\"\" + bean.getBlockId());-->0.507092552837",
    "category: Denial of Service--->1.0"
   },
   {
    "message: * System.out.println(objects[0]); Long l =--->0.507092552837",
    "category: Cross Site Scripting--->1.0"
   }
]

注意:我已经尝试过 json.dumps() 但它不起作用!

【问题讨论】:

  • 你想要的输出是一个集合列表?
  • @Rakesh 我猜他的意思是一个 json 对象的 json 数组
  • 这是我们用于开发的格式化 json
  • 那不是有效的 JSON。你的意思是{"message": "// System...", "category": "Poor..."}
  • 请用所需的输出更新问题

标签: python json python-2.7 formatting


【解决方案1】:

使用列表切片。

例如:

lst = [
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0",
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Cross Site Scripting--->1.0",
    "message: // System.out.println(\"resultMap -- \"+resultMap);--->1.0",
    "category: Poor Logging Practice--->1.0",
    "message: // System.out.println(\"\" + bean.getBlockId());-->0.507092552837",
    "category: Denial of Service--->1.0",
    "message: * System.out.println(objects[0]); Long l =--->0.507092552837",
    "category: Cross Site Scripting--->1.0"
]

res = []
for i in range(0, len(lst), 2):       
    message, category = lst[i:i+2]
    res.append({"message": message.lstrip("message:"), "category": category.lstrip("category:")})
print(res)

输出:

[{'category': ' Poor Logging Practice--->1.0',
  'message': ' // System.out.println("resultMap -- "+resultMap);--->1.0'},
 {'category': ' Cross Site Scripting--->1.0',
  'message': ' // System.out.println("resultMap -- "+resultMap);--->1.0'},
 {'category': ' Poor Logging Practice--->1.0',
  'message': ' // System.out.println("resultMap -- "+resultMap);--->1.0'},
 {'category': ' Denial of Service--->1.0',
  'message': ' // System.out.println("" + bean.getBlockId());-->0.507092552837'},
 {'category': ' Cross Site Scripting--->1.0',
  'message': ' * System.out.println(objects[0]); Long l =--->0.507092552837'}]

【讨论】:

  • 替换为lstrip
猜你喜欢
  • 1970-01-01
  • 2014-01-23
  • 2020-10-13
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2014-02-27
  • 2023-03-04
相关资源
最近更新 更多