我有兩個獨立的功能,可以完美地工作,但我無法將它們組合起來。這是第一個:with open('/topladder/top_fr', 'r') as file1: with open('/topladder/top_pression', 'r') as file2: same = set(file1).intersection(file2)with open('/topladder/pr_top_fr', 'w') as file_out: for line in same: file_out.write(line)我在文件上得到了很好的結果,幾行,如下所示:#000000#111111#AAAAAA第二個從 JSON 文件中提取數據,如下所示: data = json.loads(response) for p in data ["items"]: if p["tag"] == #BBBBBB : print("%s %s %s" % ( p["rank"], p["name"], p["trophies"],))我也得到了很好的結果。但是,我想使用第一個腳本的結果并結合兩個腳本執行以下操作,而不是手動放置標簽:with open('/topladder/top_fr', 'r') as file1: with open('/topladder/top_pression', 'r') as file2: same = set(file1).intersection(file2) data = json.loads(response) for p in data ["items"]: for line in same: if p["tag"] == line : print("%s %s %s" % ( p["rank"], p["name"], p["trophies"],))但是,沒有結果...我想我還沒有到此為止,謝謝您!
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
line以換行符結尾,您需要在與 進行比較之前將其刪除p["tag"]。
if p["tag"] == line.strip():
您可以通過在創建集合時刪除它們來更有效地完成此操作:
same = set(x.strip() for x in set(file1).intersection(file2))
也不需要循環same,使用in.
for p in data["items"]:
if p["tag"] in same:
print("%s %s %s" % (
p["rank"],
p["name"],
p["trophies"],
))
添加回答
舉報
0/150
提交
取消