将文本文件中的数据转换为JSON [英] Convert data in a text file into JSON

查看:1437
本文介绍了将文本文件中的数据转换为JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在名为data.txt的文本文件中有数据,例如

I have data in a text file named data.txt, like

1. John (1994)  92      
2. Granny (1972)    82  

我想使用Awk将此数据转换为JSON格式.预期结果:

I want to convert this data to JSON format using Awk. Expected result:

[{
  "ID" : ​    "1"​,
  "Name" : ​  "John",
  "Birth" : ​ "1994",
  "Marks" : ​ "92"
}]

我用jq尝试过

jq -R '[ split("\n")[] | select(length > 0) | split(" ") | {ID: .[0], Name: .[1], Birth: .[2], Marks: .[3]}]' data.txt

推荐答案

awk ' BEGIN { print "[" ; }  { print " {\n" "   \"ID\" : \""   $1  "\",\n"  "   \"Name\" : \""  $2 "\",\n"  "   \"Birth\" : \""  $3  "\",\n"  "   \"Marks\" : \""  $4  "\"\n" " }" }   END { print "]" } ' data.txt

或者,您也可以执行以下操作.

or, you can do the following, too.

awk ' BEGIN { print "[" ; }                     \
      { print  " {"                             \
        print  "   \"ID\" : \""     $1  "\","   \
        print  "   \"Name\" : \""   $2  "\","   \
        print  "   \"Birth\" : \""  $3  "\","   \
        print  "   \"Marks\" : \""  $4  "\""    \
        print  " }"                             \
      }                                         \
      END { print "]" } '  data.txt       

然后您将看到以下输出.

Then you can see the following output.

[
 {
   "ID" : "1.",
   "Name" : "John",
   "Birth" : "(1994)",
   "Marks" : "92"
 }
 {
   "ID" : "2.",
   "Name" : "Granny",
   "Birth" : "(1972)",
   "Marks" : "82"
 }
]

这篇关于将文本文件中的数据转换为JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆