json字符串写入word文档

请问一下如何把json文件里的数据导入到word表格中去,里面的数据感觉有好多种对象类型

该回答引用ChatGPT

以下是使用 Python 和 Python-docx 库将 JSON 数据导入 Word 表格的示例代码:


import json
from docx import Document
from docx.shared import Inches

# 打开 JSON 文件并读取数据
with open('data.json', 'r') as f:
    data = json.load(f)

# 创建一个新的 Word 文档
document = Document()

# 创建一个表格,包含两行和三列
table = document.add_table(rows=2, cols=3)

# 添加表头
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '名称'
hdr_cells[1].text = '数值'
hdr_cells[2].text = '类型'

# 将 JSON 数据插入到表格中
for item in data:
    row_cells = table.add_row().cells
    row_cells[0].text = item['name']
    row_cells[1].text = str(item['value'])
    row_cells[2].text = type(item['value']).__name__

# 将表格添加到 Word 文档中并保存
document.add_page_break()
document.save('output.docx')

在这个示例代码中,我们首先打开了一个 JSON 文件并读取了其中的数据。然后,我们使用 Python-docx 库创建了一个新的 Word 文档,并添加了一个包含表头的表格。接着,我们遍历 JSON 数据,并将其插入到表格中。最后,我们将表格添加到 Word 文档中并保存该文档。请注意,我们使用 type() 函数获取了 JSON 数据的类型,并将其作为表格中的一列显示。

  • 请看👉 :json文件写入
  • 除此之外, 这篇博客: 将Json数据写入到本地文件中,并读取出来中的 1.将Json数据写入到文件中 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •    /**
         * 将JSON数据格式化并保存到文件中
         * @param jsonData 需要输出的json数
         * @param filePath 输出的文件地址
         * @return
         */
        public static boolean createJsonFile(Object jsonData, String filePath) {
            String content = JSON.toJSONString(jsonData, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,
                    SerializerFeature.WriteDateUseDateFormat);
            // 标记文件生成是否成功
            boolean flag = true;
            // 生成json格式文件
            try {
                // 保证创建一个新文件
                File file = new File(filePath);
                if (!file.getParentFile().exists()) { // 如果父目录不存在,创建父目录
                    file.getParentFile().mkdirs();
                }
                if (file.exists()) { // 如果已存在,删除旧文件
                    file.delete();
                }
                file.createNewFile();
                // 将格式化后的字符串写入文件
                Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
                write.write(content);
                write.flush();
                write.close();
            } catch (Exception e) {
                flag = false;
                e.printStackTrace();
            }
            return flag;
        }