我有一个我正在尝试构建的查询.查询似乎在部分工作,查询的单独部分返回正确数量的元素.但是,组合查询返回空结果集,这是不正确的.
注意:我知道查询1和2不需要and_,但我想确保and_正如我预期的那样工作.
查询1:
SQLAlchemy查询
session.query(Lobby).filter(
and_(
Lobby.id == spectator_table.c.lobby_id,
spectator_table.c.player_id == player.steamid
)
).all()
Run Code Online (Sandbox Code Playgroud)生成的SQL
SELECT lobby.id AS lobby_id, lobby.name AS lobby_name, lobby.owner_id AS lobby_owner_id
FROM lobby, spectator
WHERE lobby.id = spectator.lobby_id AND spectator.player_id = ?
Run Code Online (Sandbox Code Playgroud)查询2:
SQLAlchemy查询
session.query(Lobby).filter(
and_(
Lobby.id == Team.lobby_id,
LobbyPlayer.team_id == Team.id,
LobbyPlayer.player_id == player.steamid
)
).all()
Run Code Online (Sandbox Code Playgroud)生成的SQL
SELECT lobby.id AS lobby_id, lobby.name AS lobby_name, lobby.owner_id AS lobby_owner_id
FROM lobby, team, lobby_player
WHERE lobby.id = team.lobby_id AND lobby_player.team_id = team.id AND lobby_player.player_id = ? …Run Code Online (Sandbox Code Playgroud)我有包含许多UTF-8 xml文件的zip存档.这些文件主要包含英文标签和文本,但有些标签包含非英文文本.我打开zip文件并解析其中的xml文件没有问题,但是非英文文本丢失了它的编码.
当在Notepad ++中提取并打开xml文件时,非英语文本如下所示:
???? ?????????? ? ??????? ?? ????????? ?? ?????????? ????????????? ???????? ????? (????) - 176.100.
Run Code Online (Sandbox Code Playgroud)
当它被Python(在linux盒子上)提取和读取时,文本看起来像:
ÐÑÑÑ ÐºÐ°ÑбованÑа к доллаÑÑ Ð½Ðµ изменилÑÑ Ð½Ð° УкÑаинÑкой ÐежбанковÑкой ÐалÑÑной ÐиÑже (УÐÐÐ) - 176.100.
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像:
def parse(self, fp):
# open/decompress zip file
with zipfile.ZipFile(fp, 'r') as f:
# get all files in zip
comp_files = f.namelist()
for comp_file in comp_files:
cfp = f.open(comp_file, 'r')
# parse xml
tree = ElementTree.parse(cfp)
...parsing...
Run Code Online (Sandbox Code Playgroud)
我尝试解码/编码来自cfp的文本,并用codecs.EncodedFile()和utf_8和utf_8_sig的输入编码包装,没有任何变化.我该怎么做来修复非英文文本?