我有一些非常大的json文件,我需要转换(最大的一个是500 MB)。在线工具仅支持小尺寸,不适合我。所以我看了stackoverflow来寻找可能对我有用的脚本。发现了这个:
import csv
import json
infile = open("test_user.json","r")
outfile = open ("test_user.csv","w")
writer = csv.writer(outfile)
for row in infile:
data = json.loads(row)
writer.writerow(data)
这是我的一个json文件的链接:https://pastebin.com/xpzeJmug
[
{
"contributors": null,
"truncated": false,
"text": "",
"in_reply_to_status_id": null,
"id": 433266666479562750,
"favorite_count": 0,
"source": "<a href=\"http://www.apple.com\" rel=\"nofollow\">iOS</a>",
"retweeted": false,
"coordinates": null,
"entities": {
"symbols": [],
"user_mentions": [],
"hashtags": [
{
"indices": [
38,
43
],
"text": "IMDb"
}
],
"urls": [
{
"url": "http://tw.co/LTiHcO3XH2",
"indices": [
44,
66
],
"expanded_url": "http://www.imdb.com/title/tt0993846",
"display_url": "imdb.com/title/tt0993846"
}
]
},
"in_reply_to_screen_name": null,
"in_reply_to_user_id": null,
"retweet_count": 0,
"id_str": "433266666479562753",
"favorited": false,
"user": {
"follow_request_sent": false,
"profile_use_background_image": true,
"id": 182591357,
"verified": false,
"profile_text_color": "333333",
"profile_image_url_https": "https://pbs.twimg.com/profile_images/430409335710416897/pwV3muOK_normal.jpeg",
"profile_sidebar_fill_color": "DDEEF6",
"is_translator": false,
"geo_enabled": true,
"entities": {
"description": {
"urls": []
}
},
"followers_count": 363,
"protected": false,
"location": "Turkey",
"default_profile_image": false,
"id_str": "182591357",
"lang": "tr",
"utc_offset": 7200,
"statuses_count": 23921,
"description": "@Besiktas, I Love House Music.",
"friends_count": 238,
"profile_link_color": "0084B4",
"profile_image_url": "http://pbs.twimg.com/profile_images/430409335710416897/pwV3muOK_normal.jpeg",
"notifications": false,
"profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/660819655/mbxstu4fqnkll8b5kyu7.jpeg",
"profile_background_color": "C0DEED",
"profile_banner_url": "https://pbs.twimg.com/profile_banners/182591357/1391607536",
"profile_background_image_url": "http://pbs.twimg.com/profile_background_images/660819655/mbxstu4fqnkll8b5kyu7.jpeg",
"name": "Metin Haşal",
"is_translation_enabled": false,
"profile_background_tile": true,
"favourites_count": 3,
"screen_name": "metinhasal",
"url": null,
"created_at": "Tue Aug 24 23:30:11 +0000 2010",
"contributors_enabled": false,
"time_zone": "Istanbul",
"profile_sidebar_border_color": "FFFFFF",
"default_profile": false,
"following": false,
"listed_count": 0
},
"geo": null,
"in_reply_to_user_id_str": null,
"possibly_sensitive": false,
"lang": "en",
"created_at": "Tue Feb 11 15:49:57 +0000 2014",
"in_reply_to_status_id_str": null,
"place": null,
"metadata": {
"iso_language_code": "en",
"result_type": "recent"
}
},
{
"contributors": null,
"truncated": false,
"text": "",
"in_reply_to_status_id": null,
"id": 433266923489730560,
"favorite_count": 0,
"source": "<a href=\"http://www.apple.com\" rel=\"nofollow\">iOS</a>",
"retweeted": false,
"coordinates": null,
"entities": {
"symbols": [],
"user_mentions": [],
"hashtags": [
{
"indices": [
53,
58
],
"text": "IMDb"
}
],
"urls": [
{
"url": "http://tw.co/IAWzT6Mmp1",
"indices": [
30,
52
],
"expanded_url": "http://www.imdb.com/title/tt0387877",
"display_url": "imdb.com/title/tt0387877"
}
]
},
"in_reply_to_screen_name": null,
"in_reply_to_user_id": null,
"retweet_count": 0,
"id_str": "433266923489730560",
"favorited": false,
"user": {
"follow_request_sent": false,
"profile_use_background_image": true,
"id": 249246669,
"verified": false,
"profile_text_color": "333333",
"profile_image_url_https": "https://pbs.twimg.com/profile_images/2551826686/image_normal.jpg",
"profile_sidebar_fill_color": "DDEEF6",
"is_translator": false,
"geo_enabled": true,
"entities": {
"url": {
"urls": [
{
"url": "http://tw.co/VhnKdhkDbZ",
"indices": [
0,
22
],
"expanded_url": "http://www.vimeo.com/bolelof",
"display_url": "vimeo.com/bolelof"
}
]
},
"description": {
"urls": []
}
},
"followers_count": 787,
"protected": false,
"location": "Moscow City Mufuka!",
"default_profile_image": false,
"id_str": "249246669",
"lang": "en",
"utc_offset": -18000,
"statuses_count": 1969,
"description": "Заядлый турист, маньяк-велосипедист, любитель тату-портаков и всей музыки на свете. Ведущий 'афиши' на мск-24. Хороший парень и возможно ваш друг.",
"friends_count": 108,
"profile_link_color": "0084B4",
"profile_image_url": "http://pbs.twimg.com/profile_images/2551826686/image_normal.jpg",
"notifications": false,
"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_color": "C0DEED",
"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
"name": "болелов борис",
"is_translation_enabled": false,
"profile_background_tile": false,
"favourites_count": 0,
"screen_name": "bolelof_boris",
"url": "http://tw.co/VhnKdhkDbZ",
"created_at": "Tue Feb 08 17:26:01 +0000 2011",
"contributors_enabled": false,
"time_zone": "Quito",
"profile_sidebar_border_color": "C0DEED",
"default_profile": true,
"following": false,
"listed_count": 27
},
"geo": null,
"in_reply_to_user_id_str": null,
"possibly_sensitive": false,
"lang": "en",
"created_at": "Tue Feb 11 15:50:58 +0000 2014",
"in_reply_to_status_id_str": null,
"place": null,
"metadata": {
"iso_language_code": "en",
"result_type": "recent"
}
},
{
"contributors": null,
"truncated": false,
"text": "",
"in_reply_to_status_id": null,
"id": 433267603868762100,
"favorite_count": 0,
"source": "<a href=\"http://www.apple.com\" rel=\"nofollow\">iOS</a>",
"retweeted": false,
"coordinates": null,
"entities": {
"symbols": [],
"user_mentions": [],
"hashtags": [
{
"indices": [
45,
50
],
"text": "IMDb"
}
],
"urls": [
{
"url": "http://tw.co/Mv56yMkFQ2",
"indices": [
22,
44
],
"expanded_url": "http://www.imdb.com/title/tt2193215",
"display_url": "imdb.com/title/tt2193215"
}
]
},
"in_reply_to_screen_name": null,
"in_reply_to_user_id": null,
"retweet_count": 0,
"id_str": "433267603868762112",
"favorited": false,
"user": {
"follow_request_sent": false,
"profile_use_background_image": true,
"id": 249246669,
"verified": false,
"profile_text_color": "333333",
"profile_image_url_https": "https://pbs.twimg.com/profile_images/2551826686/image_normal.jpg",
"profile_sidebar_fill_color": "DDEEF6",
"is_translator": false,
"geo_enabled": true,
"entities": {
"url": {
"urls": [
{
"url": "http://tw.co/VhnKdhkDbZ",
"indices": [
0,
22
],
"expanded_url": "http://www.vimeo.com/bolelof",
"display_url": "vimeo.com/bolelof"
}
]
},
"description": {
"urls": []
}
},
"followers_count": 787,
"protected": false,
"location": "Moscow City Mufuka!",
"default_profile_image": false,
"id_str": "249246669",
"lang": "en",
"utc_offset": -18000,
"statuses_count": 1969,
"description": "Заядлый турист, маньяк-велосипедист, любитель тату-портаков и всей музыки на свете. Ведущий 'афиши' на мск-24. Хороший парень и возможно ваш друг.",
"friends_count": 108,
"profile_link_color": "0084B4",
"profile_image_url": "http://pbs.twimg.com/profile_images/2551826686/image_normal.jpg",
"notifications": false,
"profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
"profile_background_color": "C0DEED",
"profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
"name": "болелов борис",
"is_translation_enabled": false,
"profile_background_tile": false,
"favourites_count": 0,
"screen_name": "bolelof_boris",
"url": "http://tw.co/VhnKdhkDbZ",
"created_at": "Tue Feb 08 17:26:01 +0000 2011",
"contributors_enabled": false,
"time_zone": "Quito",
"profile_sidebar_border_color": "C0DEED",
"default_profile": true,
"following": false,
"listed_count": 27
},
"geo": null,
"in_reply_to_user_id_str": null,
"possibly_sensitive": false,
"lang": "bg",
"created_at": "Tue Feb 11 15:53:41 +0000 2014",
"in_reply_to_status_id_str": null,
"place": null,
"metadata": {
"iso_language_code": "bg",
"result_type": "recent"
}
}
]
当我运行该文件时,我收到以下错误:
追踪(最近一次呼叫最后一次):
File "C:/Users/Piyush/Desktop/2008/runcsv.py", line 11, in <module>
writer.writerow(data)
_csv.Error: sequence expected
有人可以告诉我如何修复。我不太了解python所以如果你给我一个详细的答案,我将不胜感激。
答案 0 :(得分:0)
此处也提出了类似的问题:_csv.Error: sequence expected [Python]
请检查解决方案是否适合您。
答案 1 :(得分:0)
import pandas as pd
df = pd.read_json("FILE.json")
df.to_csv("test.csv")
此代码可能适合您。
答案 2 :(得分:0)
您可以在此处找到解决方案:Stackoverflow: Nested Json to csv。
如果您在问题中指定所需的完整格式会更有帮助。