javascript json.parse无法读取Python json转储

javascript json.parse无法读取Python json转储,javascript,python,json,Javascript,Python,Json,我正在尝试读取python中通过json.dump模块生成的json文件,并使用json.parse在javascript中读取它。但是,对于某些json转储,javascript会抛出无效文本的异常。有人知道为什么会发生这种情况吗?或者我应该做些什么来防止这种情况 浏览器:Chrome/Firefox;python版本:2.7 EDIT1:基于提供一些代码的注释 1) 使用 import json json.dump(<python-dict>, open(<filename

我正在尝试读取python中通过
json.dump
模块生成的json文件,并使用
json.parse
在javascript中读取它。但是,对于某些json转储,javascript会抛出无效文本的异常。有人知道为什么会发生这种情况吗?或者我应该做些什么来防止这种情况

浏览器:Chrome/Firefox;python版本:2.7

EDIT1:基于提供一些代码的注释

1) 使用

import json
json.dump(<python-dict>, open(<filename>,'w'), encoding='utf-8')``
导入json
dump(,open(,'w'),encoding='utf-8')``
2) 代码读取使用

  • d3.json
    输出:在调用回调之前抛出语法错误
  • JSON.parse
    输出:无效的json

EDIT2:这可能是相关的,json转储非常大,大约24M未压缩。

您没有关闭文件,当您再次尝试读取该文件时,可能会导致文件不完整

怎么样

with open(filename, "w") as outfile:
    json.dump(myobject, outfile)

为了完成这个循环,我找到了问题和相应的解决方法

首先是问题:

问题不在于
没有像一些答案所建议的那样关闭文件
,也不在于文件太大(正如我最初所想的那样)。问题是
json.dump
部分之前的数据包含NAN,默认情况下
json.dump
(请参阅)允许NAN被“序列化”或抛出错误(当“allow_NAN=False”时)。但是,根据ECMA-262,NAN是不允许的,因此jquery json读取无法读取转储

解决方案:

使用
simplejson
并对其使用
ignore\u nan
。更正后的代码段应为

import simplejson
simplejson.dump(<python-dict>, open(<filename>,'w'), encoding='utf-8', ignore_nan=True)
导入simplejson
simplejson.dump(,open(,'w'),encoding='utf-8',ignore_nan=True)

信用证:

请您发布一些相关代码,这样更容易调试。:)很抱歉。。这是一个打字错误。。。我确实记得把东西给了他