e 文不好,也尽力去看了官文,这两个问题感觉似乎是,我直接看官文不一定有答案的解决,存在技巧?
DataELE = {'A':'AA','B':'BB','markID':'46628'}
# 查询
DataQuery = session.query(tbl_Data).filter(tbl_Data.markID == DataELE.get('markID')).first()
是否可对 DataQuery 内容进行历遍,表结构虽然已经 class tbl_Data 了,
SQL 表结构简单还好,如果有几十个字段,
去对 tbl_Data.*** N 个字段表达做处理,把字段名字敲写完全和完全正确,还是挺郁闷的。。。
能历遍一梭子就好。。。
第二个问题与上面的问题情景有些不同,但现在我是这么做的,感觉不是很好的样子。。。
把 DataQuery 转了字典(网上看到的例子)
DataELE = {'A':'AA','B':'BB','markID':'46628','UpdateTime':xxxx}
# 查询
DataQuery = session.query(tbl_Data).filter(tbl_Data.markID == DataELE.get('markID')).first()
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
DataQueryDict = to_dict(DataQuery) # 转换字典
DataQueryDict.pop('id') # 剥掉 SQL 自增 ID
DataQueryDict.pop('UpdateTime') # 剥掉更新时间
# 比较内容
if set(DataQueryDict.items()) ^ set(DataELE.items()): # 有不同
writeToLogString = writeToLogString + (str(set(DataQueryDict.items()) ^ set(DataELE.items()))) # 找出不同的地方,后面会把 writeToLogString 保存起来
想找个方法,能否直接比较本地 dict 和 query 结果,又忽略.querry 带来的自增 id,和 updatetime 。。。。
目的是:本地生成了一个 dict,这个 dict 结构看看跟查询结果是否有不同,有不同的地方作为 String 进行 print 。。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.