开发机器人最方便的工具是 python,既能跨平台开发,而且语法灵活,实现方便.
为了方便单一功能的机器人运行,通常不会接口数据库,因此比较常见的是用文件做一些数据的交互和存储.
数据无论通过文件交互,还是通过网络交互,json格式的 跨平台、跨语言支持,无疑是最好的选择.
这里就示范一下python bot对 json 文件的存取操作(users_json.py).
import json
# import file
users_file = 'users.json'
# 初始化信息:字符串转成字典
bot_accounts = '''
{
"users": [
{
"id": 1,
"name": "user12",
"grade": "天蝎座",
"phone": "13488709999",
"tokens": 10401
},
{
"id": 2,
"name": "user35",
"grade": "双鱼座",
"phone": "18612511888",
"tokens": 100
}
]
}
'''
user_dicts = json.loads(bot_accounts) # 加载初始化json格式信息
print('init.user_dicts:', user_dicts)
try:
uf = open(users_file, 'r', encoding='utf-8') # 支持中文
user_dicts = json.load(uf) # 读取json文件中的字符串信息,覆盖初始化json格式信息
print('old.user_dicts:', user_dicts)
uf.close()
except IOError:
uf = open(users_file, 'w', encoding='utf-8')
# user_dicts = {'users': []} # 初始化信息
with open(users_file, 'w', encoding='utf-8') as f:
# indent为缩进,中文默认使用的ascii编码,中文需要ensure_ascii=False
json.dump(user_dicts, f, indent=4, ensure_ascii=False)
with open(users_file, 'r', encoding='utf-8') as f:
# 直接用load()传入文件对象,将文件中字符串内容转为json字典
user_dict2 = json.load(f)
print('old.user_dict2:', user_dict2)
user_dict2['users'].append({
"id": 3,
"name": "user58",
"grade": "双子座",
"phone": "718612511777",
"tokens": 700
})
print('new.user_dict2:', user_dict2)
with open(users_file, 'w', encoding='utf-8') as f:
# 用dump()传入字典和文件对象,将json字典转为字符串,存入文件
json.dump(user_dict2, f, indent=4, ensure_ascii=False)
执行命令:python users_json.py
执行结果,符合预期: