filesIds 是字符串1,2 和 fileNames 是字符串 wj1,wj2 两个转成key value jsonObject
时间: 2024-12-12 19:26:18 浏览: 6
当你有两组数据,`filesIds` 是包含字符串 "1" 和 "2" 的列表,而 `fileNames` 是对应字符串 "wj1" 和 "wj2" 的列表,你可以通过将这两个列表配对并将它们转换为 JSON 对象的方式来创建一个键值对的对象。假设每个文件 ID 都对应一个文件名,你可以这样做:
```javascript
const filesIds = ["1", "2"];
const fileNames = ["wj1", "wj2"];
// 创建一个空对象
let keyValueObject = {};
// 使用for循环将两个数组一一对应起来并添加到json对象中
for (let i = 0; i < filesIds.length; i++) {
keyValueObject[filesIds[i]] = fileNames[i];
}
// 转换为JSON字符串
const jsonObject = JSON.stringify(keyValueObject);
console.log(jsonObject); // 输出类似这样的结果:{"1": "wj1", "2": "wj2"}
相关问题
java代码 filesIds 是字符串1,2 和 fileNames 是字符串 wj1,wj2 两个转成key value jsonObject
在Java中,如果你想要将字符串`filesIds`和`fileNames`转换成键值对的JSONObject(JSON对象),你可以使用org.json库(如果项目中尚未包含,需要先添加依赖)。下面是一个简单的示例:
```java
import org.json.JSONObject;
String filesIds = "1,2";
String fileNames = "wj1,wj2";
// 将字符串分割成数组
String[] idsArray = filesIds.split(",");
String[] namesArray = fileNames.split(",");
// 创建一个新的JSONObject
JSONObject json = new JSONObject();
for (int i = 0; i < idsArray.length; i++) {
// 检查数组元素长度一致
if (idsArray[i].equals(namesArray[i])) {
try {
// 设置键值对
json.put("file" + (i+1), namesArray[i]);
} catch (JSONException e) {
e.printStackTrace();
}
} else {
System.out.println("文件ID和文件名长度不匹配");
}
}
System.out.println(json.toString());
```
这个代码会创建一个如`{"file1": "wj1", "file2": "wj2"}`这样的JSONObject。
from openpyxl import load_workbook import unicodedata # 指定表格文件名列表 filenames = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx'] # 使用列表推导式读取多个表格 workbooks = [load_workbook(filename) for filename in filenames] # 遍历每个工作表 for workbook in workbooks: for sheetname in workbook.sheetnames: sheet = workbooks[sheetname] # 遍历每个单元格 for row in sheet.iter_rows(): for cell in row: # 判断单元格是否为字符串类型 if isinstance(cell.value, str): # 将全角字符转换为半角字符 cell.value = unicodedata.normalize('NFKC', cell.value) # 保存修改后的 Excel 文件 for i, wb in enumerate([wb1, wb2, wb3]): wb.save(filenames[i])
以下是经过修正后的代码:
```python
import unicodedata
from openpyxl import load_workbook
# 指定表格文件名列表
filenames = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
# 使用列表推导式读取多个表格
workbooks = [load_workbook(filename) for filename in filenames]
# 遍历每个工作表
for workbook in workbooks:
for sheetname in workbook.sheetnames:
sheet = workbook[sheetname]
# 遍历每个单元格
for row in sheet.iter_rows():
for cell in row:
# 判断单元格是否为字符串类型
if isinstance(cell.value, str):
# 将全角字符转换为半角字符
cell.value = unicodedata.normalize('NFKC', cell.value)
# 使用循环存储多个表格
for i, workbook in enumerate(workbooks):
workbook.save(filenames[i])
```
修正后,代码中的问题包括:
1. `from openpyxl import load_workbook import unicodedata` 这一行代码中应该将 `import unicodedata` 移到 `from openpyxl import load_workbook` 的下一行。
2. `workbooks.sheetnames` 应该修改为 `workbook.sheetnames`,因为在遍历时,变量名 `workbook` 代表的是一个具体的 Excel 表格对象。
3. 将保存 Excel 文件的代码移动到循环之外,以便遍历每个 Excel 表格之后再进行保存。
阅读全文