为了账号安全,请及时绑定邮箱和手机立即绑定

结合2个python函数

结合2个python函数

慕桂英546537 2023-12-20 14:05:56
我有两个独立的功能,可以完美地工作,但我无法将它们组合起来。这是第一个: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"],

        ))


查看完整回答
反对 回复 2023-12-20
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信