Как записать результат в файл

Необходимо записать результат в файл

import requests
import json
f=open(r'D:\Arcgis\M.txt','w')
r = requests.get('https://5ka.ru/api/stores/?bbox=10.0000,10.0000,100.0000,100.0000')
if r.status_code == 200:
    j = json.loads(r.text[9:-2]) # обрезаем лишнее обрамление у JSON
    for feature in j['data']['features']:
        f.write(feature['geometry']['coordinates'],feature['properties']['address']+'\n')
    f.close()

выдаёт ошибку f.write(feature['geometry']['coordinates'],feature['properties']['address']+'\n') TypeError: write() takes exactly one argument (2 given)

как правильно написать чтобы сохраняло без ошибок


Ответы (2 шт):

Автор решения: Grechkin 26
import requests
import json
f=open(r'D:\Arcgis\M.txt','w')
r = requests.get('https://5ka.ru/api/stores/?bbox=10.0000,10.0000,100.0000,100.0000')
if r.status_code == 200:
    j = json.loads(r.text[9:-2]) # обрезаем лишнее обрамление у JSON
    for feature in j['data']['features']:
        f.write((f"{feature['geometry']['coordinates']}, {feature['properties']['address']}\n").replace('[','').replace(']',''))
    f.close()
→ Ссылка
Автор решения: CrazyElf

Если у вас свежая версия питона, то просто используйте f-строки:

f.write(f"{feature['geometry']['coordinates']}, {feature['properties']['address']}\n")

Кроме того, лучше открывать файл, используя конструкцию with, чтобы не нужно было помнить о закрытии файла - он закроется сам по окончании вложенного блока кода. Итого:

import requests
import json
r = requests.get('https://5ka.ru/api/stores/?bbox=10.0000,10.0000,100.0000,100.0000')
if r.status_code == 200:
    j = json.loads(r.text[9:-2]) # обрезаем лишнее обрамление у JSON
    with open(r'D:\Arcgis\M.txt','w'):
        for feature in j['data']['features']:
            f.write(f"{feature['geometry']['coordinates']}, {feature['properties']['address']}\n")
→ Ссылка