多次拆分字符串怎么写

该问题来自社区帖: https://bbs.csdn.net/topics/615387172.为符合问答规范, 该问题经过ChatGPT优化

如何将以下字符串拆分成2列:

2023-05-14完成9件, 2023-05-15完成10件, 2023-05-16完成11件

需要拆分成:

日期数量
2023-05-149
2023-05-1510
2023-05-1611

目前能够按逗号拆分为三句话,但如何进一步拆分成两列呢?

以下是代码示例:


let str = "2023-05-14完成9件, 2023-05-15完成10件, 2023-05-16完成11件";
let arr = str.split(",");
let table = document.createElement("table");
let rowHeader = table.insertRow(0);
let cellHeader1 = rowHeader.insertCell(0);
let cellHeader2 = rowHeader.insertCell(1);
cellHeader1.innerHTML = "日期";
cellHeader2.innerHTML = "数量";
for(let i = 0; i < arr.length; i++) {
  let row = table.insertRow(i+1);
  let items = arr[i].trim().split("完成");
  let cell1 = row.insertCell(0);
  let cell2 = row.insertCell(1);
  cell1.innerHTML = items[0].trim();
  cell2.innerHTML = items[1].replace("件", "").trim();
}
document.body.appendChild(table);

运行上述代码可以生成如上表格。

可以使用字符串的split()方法将字符串按照逗号和空格进行分割,然后再使用切片操作获取需要的数据。具体实现如下:

data = "2023-05-14完成9件 ,2023-05-15完成10件 ,2023-05-16完成11件"
items = data.split(",")  # 按照逗号分割字符串
result = []
for item in items:
    date, _, content = item.partition("完成")  # 按照"完成"分割字符串
    count = int(content[:-1])  # 获取完成件数,去掉最后一个字符"件"
    result.append((date.strip(), count))  # 将日期和完成件数添加到结果列表中
print(result)

输出结果为:

复制[('2023-05-14', 9), ('2023-05-15', 10), ('2023-05-16', 11)]
其中,result列表中的每个元素都是一个元组,包含日期和完成件数两个数据。

大佬,我想用sql 查询语句怎么写