Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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文档流的文件_Python_Json - Fatal编程技术网

Python 读取包含JSON文档流的文件

Python 读取包含JSON文档流的文件,python,json,Python,Json,我有一个输入文件,每行有一个JSON文档。我试着读它如下: import json auth = [] with open("test.json",'rb') as authfile: infile=authfile.readlines() for line in infile: auth_record = json.load(line) auth.append(auth_record) 我得到了下面的错误。出了什么问题 auth_recor

我有一个输入文件,每行有一个JSON文档。我试着读它如下:

import json
auth = []
with open("test.json",'rb') as authfile:
    infile=authfile.readlines()
    for line in infile:  
        auth_record = json.load(line)
        auth.append(auth_record)
我得到了下面的错误。出了什么问题

auth_record = json.load(line)
  File "/opt/anaconda/anaconda/lib/python2.7/json/__init__.py", line 286, in load
    return loads(fp.read(),
 AttributeError: 'str' object has no attribute 'read'

通常,此错误可能是由于unicode编码

尝试将此指令放在代码文件的第一行

# -*- coding: utf-8 -*-

否则,请尝试打开该文件,用troublemaker char编辑该行,并在问题中添加错误,以帮助您更好地进行分析

如果您要将字符串解析为文件中的行,请使用json.loads,而不是json.loads[它需要类似文件的对象,因此在传递字符串时会发出抱怨]

因此类似于:

for line in infile:
    auth.append(json.loads(line))

您是否查看过realtime.json的内容以确定它是否是有效的json?错误消息明确指出了文件中出现问题的位置。请签出。粘贴你的JSON文件,看看它是否有效。问题是不完整的,没有足够的信息来重现问题-在这种情况下,这意味着一个JSON文件被删减,以包含最少的必要内容,从而重现错误。谢谢你的快速回复。我仔细检查了这个文件,它不是一个json文件,而是一个以行分隔的json object.No文件。这与编码无关,即使它真的这样做了,也不会有任何帮助……特别是,它与源文件的编码无关,因为它发生在解析本身不是Python源的内容时。