python-向es存数据,数据类型报错-2021.5.11

第一次建表的时候,是直接打包的数据存进去的

es直接根据传入数据确定里各字段的类型(日期类型转为了日期存进去,再次插入的时候是字符串,所以报错)

当再次从别的地方存入数据时,出现字段类型不匹配

报错为:

‘error’: {‘type’: ‘mapper_parsing_exception’, ‘reason’: “failed to parse field [起始日期] of type [date] in document with id ‘PxqwEnkBj49MCEb4LDfv’. Preview of field’s value: ‘2020/11/16’”,

更改:

方法一:

在建表之前先确定各字段的映射类型

在kibana上面,运行以下代码,把所有字段的类型改为字符串类型

PUT textbook03
{
    "mappings": {
            "dynamic_templates": [
                {
                    "en": {       
                        "match": "*",            //将所有类型
                        "mapping": {
                            "type": "text",       //转为text格式
                            "fields": {
                                "raw": {
                                    "type": "keyword",
                                    "ignore_above": 256
                                }
                            }
                        }
                    }
                }
            ]
        
    }
}

在这里插入图片描述
然后再运行代码
首次存入数据建表
再次插入数据解决问题

GET /textbook02/_mapping   // 查看字段类型映射关系

DELETE /textbook02   //删除该表

或者

方法二:

把传入的字典改了,日期字段的格式改为日期格式存入

new_dict['起始日期'] = datetime.now()

‘起始日期’: datetime.datetime(2021, 4, 27, 17, 54, 47, 618741),

是这个

就可以了

原来是这个 ‘2020/11/16’ !!(字符串)

在这里插入图片描述

插入后是这个样子,格式再调一下就可以了 哈哈哈
感谢同事告诉我的,不然肯定要纠结很久!!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值