Python 如何从一个大字符串中过滤出多个字符串,然后将其放入 .txt 文件中

Python How do i filter out multiple strings from a big string then put it in a .txt file

所以我这里有这段代码:

    Outlook='https://www.myfxbook.com/api/get-community-outlook.json?session=' + session_id
    Outlook_response = requests.get(Outlook, verify = False)
    Outlook_data = Outlook_response.json()['symbols']

我从这里得到了我想要的一切但是我可以f.write我需要把它放到一个字符串中 lstr = ' '.join(map(str, Outlook_data))

所以现在我只剩下这个了:

{'name': 'EURUSD', 'shortPercentage': 19, 'longPercentage': 81, 'shortVolume': 5241.27, 'longVolume': 22432.81, 'longPositions': 50708, 'shortPositions': 17864, 'totalPositions': 68572, 'avgShortPrice': 1.0925, 'avgLongPrice': 1.1103} {'name': 'GBPUSD', 'shortPercentage': 20, 'longPercentage': 80, 'shortVolume': 2319.04, 'longVolume': 9272.55, 'longPositions': 28637, 'shortPositions': 8572, 'totalPositions': 37209, 'avgShortPrice': 1.3014, 'avgLongPrice': 1.3248} {'name': 'USDJPY', 'shortPercentage': 79, 'longPercentage': 21, 'shortVolume': 13172.25, 'longVolume': 3475.09, 'longPositions': 4530, 'shortPositions': 23878, 'totalPositions': 28408, 'avgShortPrice': 118.2402, 'avgLongPrice': 122.0914} {'name': 'GBPJPY', 'shortPercentage': 78, 'longPercentage': 22, 'shortVolume': 1476.39, 'longVolume': 421.39, 'longPositions': 1820, 'shortPositions': 5248, 'totalPositions': 7068, 'avgShortPrice': 155.8968, 'avgLongPrice': 160.6128} etc.

我的问题是我需要过滤掉多个 'name': 'xxx', 'shortVolume': xxx, 'longVolume': xxx

然后我需要将它们保存到多个 txt 文件中。例如 EURUSD.txt 包含名称短卷和长卷,然后是另一个文件 GBPUSD.txt 等

感谢任何帮助提前致谢

据我了解,您只需要一个基于 name

的动态文件位置
# sample data
temp_data = [{'name': 'EURUSD', 'shortPercentage': 19, 'longPercentage': 81, 'shortVolume': 5241.27, 'longVolume': 22432.81, 'longPositions': 50708, 'shortPositions': 17864, 'totalPositions': 68572, 'avgShortPrice': 1.0925, 'avgLongPrice': 1.1103} ,{'name': 'GBPUSD', 'shortPercentage': 20, 'longPercentage': 80, 'shortVolume': 2319.04, 'longVolume': 9272.55, 'longPositions': 28637, 'shortPositions': 8572, 'totalPositions': 37209, 'avgShortPrice': 1.3014, 'avgLongPrice': 1.3248}, {'name': 'USDJPY', 'shortPercentage': 79, 'longPercentage': 21, 'shortVolume': 13172.25, 'longVolume': 3475.09, 'longPositions': 4530, 'shortPositions': 23878, 'totalPositions': 28408, 'avgShortPrice': 118.2402, 'avgLongPrice': 122.0914}, {'name': 'GBPJPY', 'shortPercentage': 78, 'longPercentage': 22, 'shortVolume': 1476.39, 'longVolume': 421.39, 'longPositions': 1820, 'shortPositions': 5248, 'totalPositions': 7068, 'avgShortPrice': 155.8968, 'avgLongPrice': 160.6128} ]

# base folder location
folder_loc = './'

for data in temp_data:
    # txt contains name short volume and long volume
    with open(f'{folder_loc}{data["name"]}.txt', 'w') as f:
        f.write(f'{data["name"]} {data["shortVolume"]} {data["longVolume"]}')

PS:您可以根据需要格式化文件内容和文件位置