我正在尝试将JSON文件读取到Pandas数据框中,如下所示:
def read_JSON_into_dataframe( file_name ):
with sys.stdin if file_name is None else open( file_name, "r", encoding='utf8', errors='ignore' ) as reader:
df = pd.read_json( reader )
print( df.describe(), file = sys.stderr )
return df
但是,我遇到一个错误,对于该错误,堆栈框的底部为:
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\json\json.py in _parse_no_numpy(self)
869 if orient == "columns":
870 self.obj = DataFrame(
--> 871 loads(json, precise_float=self.precise_float), dtype=None)
872 elif orient == "split":
873 decoded = {str(k): v for k, v in compat.iteritems(
ValueError: Trailing data
“追踪数据”指的是什么?如果它指向JSON文件中的某个点,我可以做些什么来弄清楚那是什么,什么地方出了问题?
答案 0 :(得分:7)
df = pd.read_json(“ filename.json”,行= True)
答案 1 :(得分:1)
我做了这样的实验:
完整的错误消息是:
JSONDecodeError: Extra data: line 112 column 3 (char 6124)
因此,正如您所看到的,您已经精确地指出了在哪一行/哪一列 找到了这些多余的文字。
看看输入文件的这个位置。 它可能以某种方式损坏,例如一些“ {”字符 删除。
要找到问题的根源,您甚至可以使用 Notepad ++ 。 请注意,如果将光标放在“ {”之后的前面,则 此字符以及结束的“}”都以红色显示。 “ [”和“]”也一样。
这样,您可以找到匹配的打开/关闭大括号或括号 并找出缺少的东西。
当然,使用 json.load 不太可能读取您的文件 作为DataFrame,但至少可以准确地指示位置 问题发生的位置。 找到错误源并进行更正后,再次使用您的程序。