小程序云开发数据库导入excel数据

250 阅读3分钟

Excel转换为JSON并导入小程序云开发数据库

在项目开发过程中,我们经常需要将用户信息导入到小程序云开发的数据中,以便匹配新建用户是否在白名单中。然而,小程序云开发数据库只支持导入CSV和JSON格式的数据。直接使用Excel另存为CSV文件可能会导致身份证号码精度丢失等问题。因此,本文将介绍如何使用Python将Excel数据转换为适合导入的JSON格式。

操作步骤

1. 使用Excel另存为CSV

原始数据:

姓名         身份证号码          
测试姓名1  111111111111111111
测试姓名2  222222222222222222
测试姓名3  333333333333333333

另存为CSV后可能会变成这样:

姓名,身份证号码
测试姓名1,111111111111110000
测试姓名2,222222222222220000
测试姓名3,333333333333330000

显然,身份证号码的最后几位变成了0,丢失了精度。这是因为Excel在处理长数字时默认使用科学计数法,导致数据不准确。

导入之后的结果:

image.png

2. 使用Python将Excel转换为JSON格式

2.1 安装Python和pip

首先,确保你的电脑上安装了Python和pip。你可以通过以下命令查看它们是否已安装:

python --version
pip --version

如果pip未安装,可以参考这篇文章并使用这个地址下载并安装pip。

2.2 安装依赖包

使用pip安装所需的依赖包:

pip install pandas openpyxl
2.3 编写Python脚本

创建一个名为main.py的文件,编写以下内容:

import pandas as pd
import json

# 读取Excel文件
excel_file = './测试excel.xlsx'  # 替换为你的Excel文件名
sheet_name = 'Sheet1'  # 替换为你要读取的工作表名称

# 使用pandas读取Excel文件
df = pd.read_excel(excel_file, sheet_name=sheet_name)

# 将特定字段转换为字符串类型
fields_to_convert = ['id_card']  # 替换为你要转换的字段名称
for field in fields_to_convert:
    if field in df.columns:
        df[field] = df[field].astype(str)

# 将数据转换为JSON格式
json_data = df.to_dict(orient='records')

# 将数据写入文件,格式化为适合MongoDB导入的格式
json_file = '测试excel.json'
with open(json_file, 'w', encoding='utf-8') as f:
    for record in json_data:
        json.dump(record, f, ensure_ascii=False)
        f.write('\n')  # 每条记录写入一行

print(f"Excel文件 '{excel_file}' 已成功转换为适合MongoDB导入的JSON格式并保存为 '{json_file}'")
2.4 执行脚本

在命令行中运行以下命令来执行脚本:

python main.py

导出的结果将类似于以下内容:

{"name": "测试姓名1", "id_card": "111111111111111111"}
{"name": "测试姓名2", "id_card": "222222222222222222"}
{"name": "测试姓名3", "id_card": "333333333333333333"}

3. 导入云开发数据库

将生成的JSON文件导入到小程序云开发数据库中。由于MongoDB需要的数据格式与普通的JSON稍有不同,上述脚本已处理好格式问题。

导入结果:

image.png

总结

本文详细介绍了如何使用Python将Excel数据转换为适合导入小程序云开发数据库的JSON格式,解决了直接使用Excel另存为CSV文件导致数据丢失精度的问题。通过这些步骤,您可以确保数据准确无误地导入到云开发数据库中。希望这篇文章对您有所帮助!