将文档上传到CloudSearch,将我的JSON视为字符串

时间:2014-12-11 08:03:21

标签: json amazon-web-services amazon-cloudsearch

我正在尝试将我的数据文档上传到CloudSearch。我将数据上传到名为test.json的文件中,它具有以下内容。

[
    {
        "type": "add", 
        "id": "1-1", 
        "fields": {
            "id": 1,
            "type": 1,
            "address": "Moeboda 4",
            "city": "Alvesta",
            "country": "Sweden",
            "rooms": 3,
            "size": 45,
            "price": 275000
        }
    }
]

我遇到了以下问题:

  1. CloudSearch告诉我,上传的唯一字段是: content, content_encoding, content_type, resourcename

  2. 当我下载生成的“批处理”时,我会收到以下数据:

    [ {
        "type" : "add",
        "id" : "test.json",
        "fields" : {
            "content" : "[\r\n\t{\r\n\t\t\"type\": \"add\", \r\n\t\t\"id\": \"1-1\", \r\n\t\t\"fields\": {\r\n\t\t\t\"id\": 1,\r\n\t\t\t\"type\": 1,\r\n\t\t\t\"address\": \"Moeboda 4\",\r\n\t\t\t\"city\": \"Alvesta\",\r\n\t\t\t\"country\": \"Sweden\",\r\n\t\t\t\"rooms\": 3,\r\n\t\t\t\"size\": 45,\r\n\t\t\t\"price\": 275000\r\n\t\t}\r\n\t}\r\n]",
            "resourcename" : "test.json",
            "content_encoding" : "UTF-8",
            "content_type" : "application/json"
        }
    } ]
    
  3. 所以我猜测AWS CloudSearch认为我的JSON是一个字符串,因此它创建一个新文件及其现在的字段(content,resourcename,content_encoding,content_type),并用我的“字符串”填充它,然后逃避它,因为字符串应该被转义。

    我不知道为什么会这样,我已经做了好几个小时了。我一直在尝试.txt文件,.json,更改字符集,删除括号等等但没有任何作用。

    是的,我已经设置了索引选项,我已经设置了我要上传的所有字段。见截图:

    enter image description here

1 个答案:

答案 0 :(得分:2)

此问题与.py文件的字符编码有关。当"强迫"它保存为UTF-8。我认为我的编辑已将其保存为" UTF-8与BOM"。

所以,如果你遇到这个问题。 Tripple检查你的编码和字符集。