【问题标题】:json.loads or json.load() on tweet result推文结果上的 json.loads 或 json.load()
【发布时间】:2016-11-30 14:33:21
【问题描述】:

我使用此代码从我在文件中写入的提要中获取推文。 当我读取文件并尝试 json 行时,我总是得到一个错误。

    def SearchTwt(api):
    os.chdir('/Users/me/Desktop')
    SearchResult = api.search( q='market',lang='en',rpp=20)
    text_file = open("TweetOut.txt", "w")
    for tw in SearchResult:
        text_file.write(str(tw))
        print(str(tw))
    text_file.close()

我读了文件:

    def readfile():
    tweets_data = []
    os.chdir('/Users/me/Desktop')
    file = open("TweetOut.txt", "r")

    for line in file:
        parts = line.split("Status(")

        print (len(parts))
        for part in parts:
            tweet = 'Status('+part
            if len(tweet) > 10:
                tweetj = json.loads(tweet)
                #tweets_data.append(tweet)
                print(tweet)
    file.close()

用 str(tw) 填充文件可能是错误的吗?是的,我在阅读过程中重建了字符串,因为我认为推文是这样开始的。所以可能是另一个错误。

我尝试了很多其他选择。

错误: 从 None 提高 JSONDecodeError("Expecting value", s, err.value) json.decoder.JSONDecodeError:预期值:第 1 行第 1 列(字符 0)

文件是这样开始的(根据堆栈的要求编辑了 url): 状态(来源='SocialFlow',id=757991135465857024,in_reply_to_status_id=None,is_quote_status=False,entities={'hashtags':[],'user_mentions':[],'symbols':[],'urls':[{ 'url': '', 'expanded_url': '', 'display_url':

【问题讨论】:

    标签: json python-3.x twitter


    【解决方案1】:

    该文件不是有效的 JSON。应该是这样的

    {
      "source": "SocialFlow",
      "id":"757991135465857024",
      ...
      "entities": {
        "hashtags": [], 
        "user_mentions": [],
        ...
      }
    }
    

    因为它不是有效的 json,你要么必须以不同的方式解析它,要么在保存文件时确保将其写为 json。

    【讨论】:

    • 好的,我将文件另存为 txt。我会试试这个:stackoverflow.com/questions/12309269/…
    • 这段代码并没有走多远:json.dump(SearchResult, text_file, ensure_ascii=False) raise TypeError(repr(o) + " is not JSON serializable")
    • 我没有给你代码......这只是你的 JSON 错误的观察。另外,我不知道您存储的所有 JSON,所以我无法为您提供实际代码...这就是为什么我使用三个点来表示填充空白
    • 别担心,我在这个上尝试了很多不同的代码。我可以轻松地自动拆分()完整的 twit,但决定 json 会更优雅。添加 {} 也无济于事。
    • 只是您没有将其保存为 JSON。这是无效的。如果是 json,你不需要做任何拆分,只需读取所有内容并使用 json.loads() 解析它
    猜你喜欢
    • 2019-06-27
    • 2020-09-29
    • 2013-07-09
    • 2018-01-16
    • 2017-02-04
    • 2013-12-06
    • 2017-12-08
    • 1970-01-01
    相关资源
    最近更新 更多