结合2个python函数

我有两个独立的功能,可以完美地工作,但我无法将它们组合起来。这是第一个:


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"],

))


但是,没有结果...我想我还没有到此为止,谢谢您!


慕桂英546537
浏览 85回答 1
1回答

汪汪一只猫

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"],        ))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python