gpt4 book ai didi

csv - 将 YAML(或类似文件)转换或导入到 Google 电子表格(或 CSV)

转载 作者:行者123 更新时间:2023-12-05 00:04:38 26 4
gpt4 key购买 nike

我正在尝试将 YAML 格式的内容转换为 Google 电子表格。关于如何完成我想做的事情,我对不同的想法持开放态度...

项目

常见问题内容

我需要的可交付成果

Google 电子表格,一栏是问题,下一栏是答案。

我的问题

我需要以指定的格式交付内容。这是愚蠢的。我知道这很愚蠢,所以我们不在这里讨论。

我不会将文本段落写入电子表格。我讨厌那样。

我更喜欢使用 markdown(或类似工具)在纯文本编辑器中撰写文本。 (对于以前的可交付成果,我已经能够使用带有拼凑脚本的 Markdown 处理器来处理他们的一些其他问题......)

这是我想用(并且已经用过)的格式:

Is this a frequently asked question?:
Yes. People frequently ask this question.

What about this one?:
Not as much. People don't ask that question very frequently.

Et cetera?:
And so forth.

我的想法是通过某种 YAML 到 CSV 转换器来运行它,但我找不到任何似乎有效的方法。 (是的,我用谷歌搜索了。不,似乎什么都没有用。)

理想的解决方案

工具的组合或类似的东西可以让我编写一个小脚本,这样我就可以从它一步到 Google 云端硬盘电子表格。

好的解决方案

我不介意输出是一个 csv 文件还是一个 html 表格,我不得不做一些复制和粘贴之类的事情。我也接受稍微不同的标记格式。

值得注意

问题和答案均为英文内容,全部使用正常标点符号。

尝试不成功

我尝试的第一件事就是把它写成 pandoc 的 pipe_tables 格式的表,但我讨厌它。

我还在 http://codebeautify.org/yaml-to-json-xml-csv 尝试过 yaml-to-csv 转换器但如果 yaml 键有空格,则会出错。

最后,我尝试运行一个 sed 命令将我的冒号和新行转换为管道(或其他东西),这样我就可以使用 pandoc 生成一个 html 表。这没有任何效果,我最终替换了所有“r”字符,这真的很愚蠢......

为什么不直接复制粘贴? (或者——手动输入电子表格)

我有很多事情要做。

如果我能拼凑出一个脚本或一堆工具,让我可以通过单个终端命令进行转换和上传,那会让我喜欢得更好。

tl;dr

我需要以尽可能少的步骤将纯文本键值对格式转换为 Google 电子表格的两列。

最佳答案

我已经使用一些 ruby​​ 脚本解决了大约 90% 的问题。

require 'yaml'
require 'rubypants'

filename = ARGV[0]

yml = YAML.load_file("./#{filename}.yml")

open("#{filename}.html", 'w') do |f|
f << "<table>"
yml.each do |q, a|
q = RubyPants.new(q).to_html
a = RubyPants.new(a).to_html
f << "<tr><td>#{q}</td><td>#{a}</td></tr>"
end
f << "</table>"
end

这至少为我提供了一个基本的 html 表格,我可以将其复制并粘贴到 Google 云端硬盘中。我也在通过RubyPants处理问题和答案。 ,这给了我一些我喜欢的 Markdown 功能。

由于我的问题的具体情况,我将添加一些 html 标题和样式信息以及一行以在浏览器中弹出打开的结果文档,以便我可以快速复制粘贴。

我认为我很好,除非有人知道将生成的表格导入 Google 文档的简单方法。 (是的,我知道有一个 API。看看我是否能弄清楚如何使用它。

----更新----如果有人特别感兴趣,这是我的最终版本。它与上面的功能相同,但添加了 HTML 文档的其余部分,一些样式(以便我保持首选显示模式——黑色背景),并在浏览器中打开文件(该部分可能只适用于 mac) ,这对我来说很好)。

require 'yaml'
require 'rubypants'

filename = ARGV[0]


yml = YAML.load_file("./#{filename}.yml")

open("#{filename}.html", 'w') do |f|
f << "
<!DOCTYPE html>
<html>
<head>
<style>
body {margin: 20px; font-family: Menlo, Consolas, Arial; color: white; background-color: #222222; }
table {border-collapse: collapse;}
table, td, th { border: 1px solid green; }
td {vertical-align: top; min-width: 500px; padding: 20px; font-size: 24px; line-height: 32px;}
.question { color: #dddddd;}
.answer { color: #efefef;}
h1 { color: #cccccc; }
</style></head><body><h1> #{filename}.html </h1><table>"
yml.each do |q, a|
q = RubyPants.new(q).to_html
a = RubyPants.new(a).to_html
f << "<tr><td class='question'>#{q}</td><td class='answer'>#{a}</td></tr>"
end
f << "</table></body></html>"
end

system("open", "#{filename}.html")

关于csv - 将 YAML(或类似文件)转换或导入到 Google 电子表格(或 CSV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27871192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com