Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在有效的json中,如何解析.txt并将推文存储在CSV中?_Python_Json_Twitter - Fatal编程技术网

Python 在有效的json中,如何解析.txt并将推文存储在CSV中?

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(', ')'

我有一个包含json推文的txt文件,每个推文都在[text:&is_quote_status:]和日期之间,日期在行的末尾,如何将推文和日期提取到csv文件中

我终于用2个密码破解了这个。多亏了@mark,我花了时间才弄明白,但我做到了

要清除json文件,请执行以下操作:

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)