Json在Python中出现var给定错误
Json in Python with a var giving error
我有一个javascript文件,如下所示:
var abc= {
"a" : {
"label": "Monthly",
"URL": "xyz.com",
"ArchTag": "M",
"archData": {
"Feb 2016":"20160229",
"Jan 2016":"20160129",
"Dec 2015":"20151231"
}}};
所以我想要一种方法来编辑这个,并说添加一个新的月份细节。我猜这是javascript中的json。那么,如何才能以标准的方式编辑它呢。
如果你可以依赖每次看起来都像这样的数据,那么你可以去掉阻止它成为JSON的比特:
json_data = json.loads('{' + json_file.read().partition('{')[2])
(或使用正则表达式,或任何您喜欢的字符串操作)
您仍然应该注意,JavaScript与JSON不同,因此您需要有一些信心,即您得到的始终是将有效的JSON关联数组分配给变量。
另一方面,如果向您传递任意JavaScript,并期望您对其进行评估,那么您将面临更大的问题需要解决。如果有人给你var xyz = "Monthly"; var abc = {"label" : xyz, "URL" : "xyz" + "." + "com"}
怎么办?
您需要一个JavaScript引擎来解决这个更普遍的问题,而不仅仅是一个JSON解析器。例如,js2py
声称是一个用Python编写的完整JavaScript引擎,但我从未使用过它,所以我不能推荐或不推荐它
在执行来自不可信来源的代码时,除了您所要考虑的安全问题之外,如果您所做的只是从不可信来源解析JSON,还需要考虑这些安全问题。因此,如果您需要使用JavaScript引擎,请确保您正确理解它是如何被沙盒化的。
您的代码是Javascript,而不是JSON。。。
使用JS中的这段代码,您只需创建一个新的Object。
但是JSON不是一种语言。!Json是高效存储/传输数据的解决方案(作为辅助阵列)。
只是试着不定义abc
:
您的JSON文件:
{
"a" :
{
"label": "Monthly",
"URL": "xyz.com",
"ArchTag": "M",
"archData":
{
"Feb 2016":"20160229",
"Jan 2016":"20160129",
"Dec 2015":"20151231"
}
}
}
如果不能删除文件的var abc,请在字符串中读取文件,删除字符串的第一个字符并加载新字符串。
try:
with open(file) as json_file:
data = file.read()
json_data = json.loads(data[9:])
pprint(json_data)
except Exception as e:
print(e)
如果不是总是写var abc,那么从第一个{index.
实际上,由于您提到的var,文件内容不是json。您应该动态删除该部分:
json_text = json_file.read().replace('var abc=','')
json_data = json.dumps(json_text)
pprint(json_data)
您可以使用regex来替换var赋值项:
with open('file.txt') as json_file:
data = json_file.read()
data = re.sub(r'^var's*'S*'s*='s*', '', data)
json_data = json.loads(data)
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- Javascript 在尝试将 var 发送到 AS3 ExternalInterface 时抛出错误
- Json在Python中出现var给定错误
- nknown错误:Runtime.evaluate引发异常:SyntaxError:意外的令牌var
- var 在 JavaScript 中没有标识(语法错误)
- 为什么在没有 var 关键字的情况下分配给变量时会出现引用错误
- JavaScript var 分配一个动态可为空的值显示脚本错误
- 从 PHP 代码中的 URL 获取 #var 错误
- 未捕获的错误未定义不是函数 var ajax_url = $('#ajax_url').val();
- 如何在没有 ESLint no-unused-var 错误的情况下公开全局 javascript 函数
- JSLint错误“;意外的Var”;
- 忘记'时需要jshint错误;var'关键字
- var db=window.openDatabase&&openDatabase();避免错误的好方法
- Javascript:z=z||[]在不使用VAR时抛出错误-原因
- JavaScript 函数实例的 var 错误
- JSLint-'var未定义'由外部脚本文件引起的错误
- 如何在var socket = new WebSocket(url)中捕获被拒绝的错误
- 为什么javascript ' var undefined '是OK的,但' var null '抛出错误
- IE8获取对象预期错误-在var关键字声明XMLHttpRequest对象时发生
- Var和function的工作顺序错误