# 微信云开发数据库导入
mongodb 数据如何导入到腾讯云开发数据库中
微信云开发提供了数据库,操作语法类似 mongodb
, 有时需要把 mongodb
的数据导入云开发数据库,会提示操作失败,原因为 mongodb
导出的比如 json 文件和云开发所需的文件不一致,如果想成功导入我们需要进行格式修改。
比如云开发数据库导出的内容:
{"_id":"81206f415ee47c4b000189d470b597de","description":"国花","title":"郁金香","type":"plant"}
{"_id":"9abbc6f45ef6b131000489ae50de3bc1","description":"草本植物","title":"鹤望兰","type":"plant"}
mongodb 导出的内容:
[
{
"_id": "81206f415ee47c4b000189d470b597de",
"description": "国花",
"title": "郁金香",
"type": "plant"
},
{
"_id": "9abbc6f45ef6b131000489ae50de3bc1",
"description": "草本植物",
"title": "鹤望兰",
"type": "plant"
}
]
两者的差一点:
- 云开发数据每条数据为一行,mongodb 数据每个属性为一行;
- 云开发数据库每条数据单独一行,mongodb 数据会多包裹一层;
- mongodb 导出的数据有时会进行
"
转义;
知道了差一点,把差异之处消除即可把 mongodb 导出的数据完美的导入云开发数据库中。
下面是一段 python 写的格式转换代码,其它语言操作基本类似:
import json
# 读取 JSON 数据
with open(r'D:\plant\test1.json', 'r', encoding='utf-8') as f:
jsons = json.load(f)
# 将 JSON 数组转换成字符串
result_str = ''
for item in jsons:
# 遍历每个字段并处理嵌套的字符串
for key, value in item.items():
if isinstance(value, str):
# 尝试解析嵌套的 JSON 字符串,移除转义字符
try:
item[key] = json.loads(value)
except json.JSONDecodeError:
pass # 如果无法解析,则保留原始值
# 必须使用 \n 换行区别每个记录
result_str += json.dumps(item, ensure_ascii=False) + "\n"
# 保存到本地
with open(r'D:\plant\test2.json', 'w', encoding='utf-8') as f:
f.write(result_str)