从导入的JSON中删除引号

2024-09-30 20:17:15 发布

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

我正在使用python脚本导出一些数据,该脚本执行以下操作:

data = {......., 'noTick': 'true'}
with open('items.json', 'w') as sample:
    sample.write(json.dumps(data))

我正试图通过以下方式在vue应用程序中导入(src/data/items.json):

export default [
    {
        "PropertyOne": "ValueOne",
        .....,
        "noTick": "true"
    },

    {
        ......
    }
]

然后在my component.vue中导入它:

import ALL_ITEMS from 'src/data/items.json'
...
const codes = ALL_ITEMS

问题是来自quasar framework的q-tree组件期望noTick属性不带引号:

{
    "PropertyOne": "ValueOne",
    .....,
    noTick: true
}

到目前为止,我只想到:

  1. 在vscode中执行查找/替换

  2. 将toString转换回JSON:

    export default JSON.stringify(
        {
            "PropertyOne": "ValueOne",
            .....,
            "noTick": "true"
        }
    )

在{}中:

import ALL_ITEMS from 'src/data/items.json'
...
const codes = JSON.parse(ALL_ITEMS)

这也失败了。有没有办法通过使用JavaScript将此属性更改为不带引号的属性

注:为了更清楚,我对问题进行了编辑


Tags: samplesrc脚本jsontruedata属性items
2条回答

如果导入.json文件,则无需导出默认值

您只需删除它并将其作为simple.json与{}一起使用即可

或者您可以将文件重命名为.js(简单javascript文件),保留导出默认值

例:

export default {
    name: 'John Doe',
}

只需将其解压缩,JSON就可以表示基本类型(字符串、数字、布尔值和null)和两种结构化类型(对象和数组)

    export default [
        {
            "PropertyOne": "ValueOne",
            .....,
            "noTick": true
        },
    
        {
            ......
        }
    ]

编辑:在python脚本中,您应该执行相同的操作:

data = {......., 'noTick': True}
with open('items.json', 'w') as sample:
     sample.write(json.dumps(data))

相关问题 更多 >