Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Cerberus模式中添加注释?_Python_Json_Comments_Eve_Cerberus - Fatal编程技术网

Python 如何在Cerberus模式中添加注释?

Python 如何在Cerberus模式中添加注释?,python,json,comments,eve,cerberus,Python,Json,Comments,Eve,Cerberus,我正在使用python eve,我想在模式文件(.json)中添加一些注释。因此,到目前为止,我尝试了不同的评论风格: /*TYPE_OF_REFERENCE_MAPPING = { 'ABST': 'Abstract', 'ADVS': 'Audiovisual material', 'AGGR': 'Aggregated Database', 'ANCIENT': 'Ancient Text', 'ART': 'Art Work', ... }

我正在使用python eve,我想在模式文件(.json)中添加一些注释。因此,到目前为止,我尝试了不同的评论风格:

/*TYPE_OF_REFERENCE_MAPPING = {
    'ABST': 'Abstract',
    'ADVS': 'Audiovisual material',
    'AGGR': 'Aggregated Database',
    'ANCIENT': 'Ancient Text',
    'ART': 'Art Work',
    ...
}*/

//TYPE_OF_REFERENCE_MAPPING = {
//    'ABST': 'Abstract',
//    'ADVS': 'Audiovisual material',
//    'AGGR': 'Aggregated Database',
//    'ANCIENT': 'Ancient Text',
//    'ART': 'Art Work',
//    ...

#TYPE_OF_REFERENCE_MAPPING = {
#    'ABST': 'Abstract',
#    'ADVS': 'Audiovisual material',
#    'AGGR': 'Aggregated Database',
#    'ANCIENT': 'Ancient Text',
#    'ART': 'Art Work',
#    ...
#}
所有这些都会产生错误:

/api/settings.py", line 25, in <module>
    cite_schema = json.load(f)
  File "/usr/lib/python2.7/json/__init__.py", line 290, in load
    **kw)
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 369, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 233 column 1 - line 238 column 10 (char 3943 - 4111)
/api/settings.py”,第25行,在
cite_schema=json.load(f)
文件“/usr/lib/python2.7/json/_init__.py”,第290行,装入
**千瓦)
文件“/usr/lib/python2.7/json/_init__.py”,第338行,加载
返回\u默认\u解码器。解码
文件“/usr/lib/python2.7/json/decoder.py”,第369行,在decode中
raise VALUERROR(errmsg(“额外数据”,s,end,len)))
ValueError:额外数据:第233行第1列-第238行第10列(字符3943-4111)

查看下面的示例是否有帮助:


查看以下示例是否有帮助:


问题是json.load()不支持注释。这里是完整的解决方案

在我的Eve设置文件中:

import commentjson as json
...
annot_schema = json.load(f)
...
taxonannot_endopoint = {'resource_method': ['GET', 'POST'],
                        'item_methods': ['GET', 'PUT', 'PATCH'],
                        'schema': annot_schema}
现在,我的架构文件接受注释行:

# comment
{
  "primary_title": {
          "type": "string",
          "required": true
          },
...
}

问题是json.load()不支持注释。这里是完整的解决方案

在我的Eve设置文件中:

import commentjson as json
...
annot_schema = json.load(f)
...
taxonannot_endopoint = {'resource_method': ['GET', 'POST'],
                        'item_methods': ['GET', 'PUT', 'PATCH'],
                        'schema': annot_schema}
现在,我的架构文件接受注释行:

# comment
{
  "primary_title": {
          "type": "string",
          "required": true
          },
...
}

我已经用
#
这样对模式中的行进行了注释。问题应该是
json.load
处理注释的方式。在我的例子中,我在
settings.py
中直接声明了模式。您可以从另一个模块导入模式,而不是从文件加载。您的json文件格式是否与on类似回答正确吗?在这种格式中,您可以使用
#
。注意随附的
{}整个文件的
。@gcw是正确的。我尝试只使用带#注释的第一行,但也失败了。我用
#
这样注释了模式中的行。问题应该是
json.load
处理注释的方式。在我的情况下,我直接在
settings.py
中声明了模式,而不是loa您可以从一个文件中导入另一个模块中的模式。您的json文件格式是否与正确答案中的格式相同?在这种格式中,您可以使用
。请注意整个文件的
{}
。@gcw是正确的。我尝试只使用带#注释的第一行,但也失败了。