Python中带有var的Json

2024-09-30 22:27:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的javascript文件:

var abc= {
    "a" : {
            "label": "Monthly",
            "URL": "xyz.com",
            "ArchTag": "M",
            "archData": {
                "Feb 2016":"20160229",
                "Jan 2016":"20160129",
                "Dec 2015":"20151231"
}}};

所以我想一个方法来编辑这个,说添加一个新的月细节。我猜它是javascript中的json。因此,如何才能编辑它在一个标准的方式。你知道吗


Tags: 文件comurl编辑varjavascriptlabeljan
3条回答

如果无法删除文件的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,那么从第一个{索引开始。你知道吗

您的代码是Javascript,而不是JSON。。。你知道吗

使用JS中的这段代码,您只需创建一个新对象。你知道吗

但是JSON不是一种语言!!。! Json是一种高效存储/传输数据的解决方案(作为辅助数组)。你知道吗

尽量不要定义abc

您的JSON文件:

{
    "a" :
    {
            "label": "Monthly",
            "URL": "xyz.com",
            "ArchTag": "M",
            "archData":
            {
                "Feb 2016":"20160229",
                "Jan 2016":"20160129",
                "Dec 2015":"20151231"
            }
    }
}

如果您每次都能完全依赖这样的数据,那么您就可以砍掉阻止它成为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引擎,请确保您正确理解它是如何沙盒的。你知道吗

相关问题 更多 >