在SQLAlchemy中, print (js["repartitionLoadType"])
print (js['configBucket'], js['configFileName'], js['HighWaterMarkFileName'])
print (js['repartitionTargetTableName'], js['repartitionTargetS3Location'])
print (js['repartitionSourceTableName'], js['repartitionSourceDbName'])
print (js['repartitionTargetDbName'], js['repartitionLoadType'])
print (js['autoCreateCountry'], js['autoCreateTenant'], js['missingPartColDataValReplace'])
print (js['countryCodeColName'], js['tenantColName'], js['propagateGlueJobRunGuid'])
print (js['countryCodeDefault'], js['tenantDefault'], js['validateIncomingCountryTenant'], js['repartition'])
partition_dts = ""
# json array
for i in range(0, len(js['repartitionTargetColumnList'])):
if True == js['repartitionTargetColumnList'][i]['isDatePartition']:
partition_dts = "`" + js['repartitionTargetColumnList'][i]['colName'] + "`"
else:
js['repartitionTargetColumnList'][i]['colName'] = "new value replace/assign here"
continue
# to set/replace/assign any values above:
js["repartitionLoadType"] = "some new value"
和.one()
之间的主要区别是什么,因为两者都执行相同的工作。
我看到了{{3}}之类的网站,但这种解释不足以让我清楚地理解
答案 0 :(得分:2)
这是区别, 使用one(), 如果您的查询应返回1个结果,否则引发异常。即使返回0结果。
使用scalar(): 如果查询返回1个结果或没有结果。否则引发异常。
答案 1 :(得分:1)
SQLAlchemy有不错的文档。
one()
仅返回一个结果或引发异常。
如果查询未选择任何行,则引发sqlalchemy.orm.exc.NoResultFound。 如果有多个对象,则引发sqlalchemy.orm.exc.MultipleResultsFound 标识返回,或者查询返回多行 只返回标量值,而不是完整的标识映射 实体。
链接one()方法
scalar()
返回第一个结果的第一个元素;如果没有行,则返回None 当下。如果返回多行,则引发MultipleResultsFound。
链接scalar()方法。
如果您对我的建议 SQLAlchemy 有任何疑问-首先,请检查文档,因为它确实功能强大且干净。