用云开发数据库选择CSV导入时,需要将number类型转换成string类型的心路历程
发布于 4 年前 作者 yang44 1204 次浏览 来自 分享

虽然不知道Number类型和string类型之间有什么具体的区别,目前知道的是在查询时,如果_id时Number类型,那么.where(_id:1232)就得这么写,不然就查不到数据。云函数执行的时候也出错了,应该也是这种类似的问题。

在Excel中,电话号码身份证号码这些转成csv格式时,会自动的变成常规格式(就是csv中点击设置修改单元格格式),修改后保存再重新打开还是一样,还是常规格式,如果直接用云开发控制台导入csv文件的话,电话号码这些数字组成的数据会变成Number类型。而当你需要它是string类型的时候,我目前找到方法就是把csv转换成json格式进行上传。

csv转json并且满足导入格式(以\n为分隔)的有在线方法。

这个是excel转json在线链接地址https://www.xiaomutong.com.cn/index20200501.html是社区大佬小肥羊提供的,不知道为何我现在打不开。我之前是可以打开的,但现在不行,不过手机上打开了,

它是要上传文件上去的,并且其他人看得到你上传的文件,这就是在线不好之处,如果数据比较隐私,就不建议这样做。

数据隐私就采用本地的处理办法。通过python将csv转成json格式。

json与csv格式相互转换博客园链接https://www.cnblogs.com/SGzhang/p/10819093.html

用这个方法之后的json是放在一个数组里,只需要把最外层的中括号 [ ] 删除,就是一个一个的大括号了。

到此时导入的话你会发现导入失败。因为它每个大括号的分隔符有逗号“,”,导入的格式要求的’\n’,那么该怎么把这可恶逗号处理掉呢?

我最开始的思路是想着直接让它生成json文件的时候就没有逗号,于是我又百度了很久,还试图去理解python代码的意思,但我还是没有成功。

最后来了,我自认为的高潮来了。

我想到查找替换,把逗号删掉,但每个字段相隔里也有逗号,突然间我看到了一个特殊的地方,分隔符的逗号它前面都有一个大括号,类似这种结构{},{},{}

我就用下面的办法。

这样我就把逗号删掉了,哈哈哈,我之前怎么没想到这个土办法。

就这样我把所有的Number字段都变成了string类型。

1 回复

已把证书更新了,帮我再看看,能打开了吗

回到顶部