Python 在有效的json中,如何解析.txt并将推文存储在CSV中?
我有一个包含json推文的txt文件,每个推文都在[text:&is_quote_status:]和日期之间,日期在行的末尾,如何将推文和日期提取到csv文件中 我终于用2个密码破解了这个。多亏了@mark,我花了时间才弄明白,但我做到了 要清除json文件,请执行以下操作:Python 在有效的json中,如何解析.txt并将推文存储在CSV中?,python,json,twitter,Python,Json,Twitter,我有一个包含json推文的txt文件,每个推文都在[text:&is_quote_status:]和日期之间,日期在行的末尾,如何将推文和日期提取到csv文件中 我终于用2个密码破解了这个。多亏了@mark,我花了时间才弄明白,但我做到了 要清除json文件,请执行以下操作: fin = open("sim.txt") fout = open("output.txt", "w+") delete_list = ['ObjectId(', 'NumberLong(','ISODate(', ')'
fin = open("sim.txt")
fout = open("output.txt", "w+")
delete_list = ['ObjectId(', 'NumberLong(','ISODate(', ')']
for line in fin:
for word in delete_list:
line = line.replace(word, "")
fout.write(line)
fin.close()
fout.close()
提取推文和日期并将其存储在.csv中
import json
import csv
infile = open("output1.txt","r")
outfile=open("output4.csv","w")
json_s=infile.read()
writer=csv.writer(outfile)
for data in(json.loads(json_s)):
x=data['text'].encode("utf-8")
y=data['created_at_date'].encode("utf-8")
writer.writerow([x,y])
infile.close()
outfile.close()
print 'DONE'
我拥有的Sample.json字符串-
{
"_id": "582f4fbd44b65941a0a81213",
"contributors": null,
"truncated": false,
"text": "Tonight at 10 PM ET, 7 PM PT, on @FoxNews, a one hour special on me and my life by @HarveyLevinTMZ. Enjoy!",
"is_quote_status": false,
"in_reply_to_status_id": null,
"id": "799660246788612100",
"favorite_count": 15765,
"source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
"retweeted": false,
"coordinates": null,
"entities": {
"symbols": [],
"user_mentions": [{
"id": 1367531,
"indices": [33, 41],
"id_str": "1367531",
"screen_name": "FoxNews",
"name": "Fox News"
}, {
"id": 36098990,
"indices": [83, 98],
"id_str": "36098990",
"screen_name": "HarveyLevinTMZ",
"name": "Harvey Levin"
}],
"hashtags": [],
"urls": []
},
"in_reply_to_screen_name": null,
"in_reply_to_user_id": null,
"retweet_count": 5251,
"id_str": "799660246788612100",
"favorited": false,
"user": {
"id": 25073877,
"id_str": "25073877"
},
"geo": null,
"in_reply_to_user_id_str": null,
"lang": "en",
"created_at": "Fri Nov 18 17:07:14 +0000 2016",
"in_reply_to_status_id_str": null,
"place": null,
"created_at_date": "2016-11-18T17:07:14Z"
}
请注意json路径,您的文本文件中必须有有效的json /path/to/json/file.json
此过程可以通过使用简化 假设您在/path/to/input.json或/path/to/input.txt处有一个有效的json文件,只要存在有效的json,文件扩展名就不重要了
import pandas as pd
df = pd.read_json("path/to/input.txt")
df[["text", "created_at_date"]].to_csv("output.csv", index=False)
欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南,尤其是。您没有尝试使用python从json中提取推文。给我们一个最好的尝试-然后我们都会有一些共同的工作。作为解决问题的第一步,您可以查看python的内置模块来读取数据,以及用于将结果写入csv文件的模块。AttributeError:“模块”对象没有属性“加载”-我收到此错误怎么办?每条tweet都在text:&isquote_状态:您能告诉我如何解析txt文件并在这两个标记之间保存tweet吗?关于:AttributeError:“模块”对象没有属性“加载”-您有吗导入json@sambuddu我修改了你的示例json,因为你给我们提供了一个无效的json,我也修改了答案。你能告诉我如何解析文本并将tweet保存到csv吗?如何仅提取tweet和日期并将其写入.csv?@sambuddu你在谈论json字符串中的文本字段吗?您可以指定要导出到csv的字段吗。@sambuddu更新了答案,您可以指定要导出为答案中更新的字段。
import json
with open('/path/to/json/file.json', 'r') as f:
json_string = f.read()
datas_from_json = json.loads(json_string) # json string now a iterable list
for data in datas_from_json:
print(data['text'])
# outputs
# Dummy tweet 1
# Dummy tweet 2
import pandas as pd
df = pd.read_json("path/to/input.txt")
df[["text", "created_at_date"]].to_csv("output.csv", index=False)