8

我将访问实时 twitter 推文的 Python 脚本的输出通过管道传输到文件 output.txt,使用:

$python scriptTweet.py > output.txt

最初,脚本返回的输出是一个被写入文本文件的字典。

现在我想使用 output.txt 文件来访问存储在其中的推文。但是当我使用这段代码使用 json.loads() 将 output.txt 中的文本解析为 python 字典时:

tweetfile = open("output.txt")
pyresponse = json.loads('tweetfile.read()')
print type(pyresponse)

弹出此错误:

    pyresponse = json.loads('tweetfile.read()')
  File "C:\Python27\lib\json\__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

我应该如何将文件 output.txt 的内容再次转换为字典?

4

1 回答 1

12

'tweetfile.read()'如您所见,是一个字符串。你想调用这个函数:

with open("output.txt") as tweetfile:
    pyresponse = json.loads(tweetfile.read())

或直接使用json.load并自行json read阅读它tweetfile

with open("output.txt") as tweetfile:
    pyresponse = json.load(tweetfile)
于 2013-05-13T12:39:51.300 回答