如何将以下字符串拆分成2列:
2023-05-14完成9件, 2023-05-15完成10件, 2023-05-16完成11件
需要拆分成:
日期 | 数量 |
---|---|
2023-05-14 | 9 |
2023-05-15 | 10 |
2023-05-16 | 11 |
目前能够按逗号拆分为三句话,但如何进一步拆分成两列呢?
以下是代码示例:
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 查询语句怎么写