当前位置: 首页 > 知识库问答 >
问题:

在成功更新资源后,我遇到一个JSON解码错误

韩弘阔
2023-03-14

在更新azure门户上的索引模式之后,我得到了以下信息。

/updateindex/处的JSONDecodeError

模式正在成功更新,但是我得到了这个错误和500个状态代码。

这是我的职责

@csrf_exempt
def updateIndex(request):
    
    url = 'https://search-test.search.windows.net/indexes/hotels-quickstar11t?api-version=2020-06-30'
    index_schema = {
        "name": "hotels-quickstar11t",  
        "fields": [
            {"name": "HotelId", "type": "Edm.String", "key": "true", "filterable": "true"},
            {"name": "HotelName", "type": "Edm.String", "searchable": "true", "filterable": "false", "sortable": "true", "facetable": "false"},
            {"name": "Description", "type": "Edm.String", "searchable": "true", "filterable": "false", "sortable": "false", "facetable": "false", "analyzer": "en.lucene"},
            {"name": "Description_fr", "type": "Edm.String", "searchable": "true", "filterable": "false", "sortable": "false", "facetable": "false", "analyzer": "fr.lucene"},
            {"name": "Category", "type": "Edm.String", "searchable": "true", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "Tags", "type": "Collection(Edm.String)", "searchable": "true", "filterable": "true", "sortable": "false", "facetable": "true"},
            {"name": "ParkingIncluded", "type": "Edm.Boolean", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "LastRenovationDate", "type": "Edm.DateTimeOffset", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "Rating", "type": "Edm.Double", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "Address", "type": "Edm.ComplexType", 
                "fields": [
                    {"name": "StreetAddress", "type": "Edm.String", "filterable": "false", "sortable": "false", "facetable": "false", "searchable": "true"},
                    {"name": "City", "type": "Edm.String", "searchable": "true", "filterable": "true", "sortable": "true", "facetable": "true"},
                    {"name": "StateProvince", "type": "Edm.String", "searchable": "true", "filterable": "true", "sortable": "true", "facetable": "true"},
                    {"name": "PostalCode", "type": "Edm.String", "searchable": "true", "filterable": "true", "sortable": "true", "facetable": "true"},
                    {"name": "Country", "type": "Edm.String", "searchable": "true", "filterable": "true", "sortable": "true", "facetable": "true"}
                ]
            },
            {"name": "Price", "type": "Edm.Double", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "Cost", "type": "Edm.Double", "filterable": "true", "sortable": "true", "facetable": "true"},
            {"name": "CostTest", "type": "Edm.Double", "filterable": "true", "sortable": "true", "facetable": "true"}


        ]
    }
        
    headers = {'Content-Type': 'application/json', 'api-key': 'key'}

    response = requests.put(url, headers=headers, json=index_schema)
    index = response.json()

    return HttpResponse(response)

有什么想法吗?

共有1个答案

高峻
2023-03-14

基本上,问题在于您期望从搜索服务返回JSON格式的响应,而在索引更新时,该服务实际上在默认情况下不会返回任何内容。 因此,下面的代码行引发了一个错误:

index = response.json()

如果您想要回JSON响应,您将需要用return=representation设置prefer请求头。 当您这样做时,您应该会看到JSON响应返回。

请更改以下代码行:

headers = {'Content-Type': 'application/json', 'api-key': 'key'}

headers = {'Content-Type': 'application/json', 'api-key': 'key', 'Prefer': 'return=representation'}

您应该不会收到此错误。

您可以在此阅读更多相关信息:https://docs.microsoft.com/en-us/rest/api/searchservice/update-index#response

 类似资料:
  • 问题内容: 在最近对Android Studio进行更新之后,我们在获取一个可以编译以前有效的项目时遇到了问题。最初,我们收到以下错误: 我将gradle文件中的sdk构建目标更新为23,这使这个特定的问题消失了,但是它给了我们很多apache.http包错误(特别是,我们用于http东西的很多apache包现在都消失了在SDK 23中)。 我想做的是解决奇怪的资源错误,但是没有更新到sdk23。

  • 在Android Studio最近的一次更新之后,我们在编译以前工作的项目时遇到了问题。一开始我们得到以下错误: 我将gradle文件中的sdk构建目标更新到了23,这使得这个特定的问题不复存在,但它给我们留下了大量apache.http包错误(具体来说,我们用于http的大量apache包现在在sdk 23中消失了)。 我想做的是解决奇怪的资源错误,但不更新到SDK23。我现在没有时间重新编写工

  • 在react native中遇到问题“无法安装应用程序。请确保您拥有Android开发环境”

  • mainactivity.java:18行代码是setContentView(r.layout.activity_main); 我该怎么解决这个?

  • 我在提取.7z受保护的文件时收到此错误 org . tuka ani . xz . corruptedinputexception:压缩数据损坏 我正在使用这个代码 如果你知道有什么问题,请告诉我。提前谢谢

  • 我是Python的初学者,我正试图学习如何使用数据结构,如JSON对象,但我在试图从JSON对象中实际获取数据时遇到了困难。 我可以通过已经有的代码打印文件中的数据,但是我只想打印某个值,比如的值。我如何使用我已经有的代码打印这个?

  • 我正在Android Studio上开发一个应用程序,一切都很顺利,但是当我将Android Studio更新到最新的3.2.1时。每当我重建它时,它开始抛出错误,如: 值.xml 此值行中出现错误: 我尝试了一切可能的方式来修复值中的错误,但没有解决方案,每当我对值.xml文件进行更改时,默认文件都会在重建后再次出现。任何帮助将不胜感激 非常感谢您在这件事上花费的时间和帮助。

  • 问题内容: 更新到Android Studio 3.1之后,我遇到了这个错误。 注意:我使用的是Java而不是Kotlin 问题答案: 像这样工作