Как записать результат в файл
Необходимо записать результат в файл
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")