Задать вопрос

Как распарсить json ответ на python?

Всем привет. Суть проблемы такова - в целях обучения пытаюсь скрипт написать. Получаю ответ от vk api в json формате, допустим ответ записывается в переменную ans , как можно можно будет потом распарсить ответ? И например сохранить его в html формате?
  • Вопрос задан
  • 9104 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
zelsky
@zelsky
Я парсил как словарь.
frnds = vkapi('friends.get')	#Takes freinds list
message =  messages['items'][0]['body'].encode('utf-8') #Takes body of message


Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@adron90
Тоже парсил как словарь
через json не получилось. наверно потому что бывают пустые значения

import os
import vk
import datetime
import httplib2

access_token = ''
app_id = ''


def get_photo(id):
    login = input('login: ')
    password = input('password: ')
    vkapi = vk.API(ap_id, login, password, access_token)
    album = vkapi.photos.getAlbums(owner_id=id, need_system=1)
    user_info = vkapi.users.get(user_ids=id)
    name = str(user_info[0]['first_name']) + ' ' + str(user_info[0]['last_name'])
    y, n = 0, 0
    while n <= 1000:
        photo = vkapi.photos.getAll(owner_id=id, count=200, offset=n)
        for i in photo['items']:
            for j in album['items']:
                if j['id'] == i['album_id']:
                    if not os.path.exists("C:\\Users\\home\\Desktop\\vk_photo\\" + name + '\\' + str(j['title'])):
                        os.makedirs("C:\\Users\\home\\Desktop\\vk_photo\\" + name + '\\' + str(j['title']))
                    y += 1
                    print(y, [str(j['title'])], [str(i['id'])])
                    key = i.keys()
                    max_size = 0
                    for x in key:
                        if x.startswith('photo_') and (int(x[6:]) > max_size):
                            max_size = int(x[6:])
                    img = i['photo_' + str(max_size)]
                    date = datetime.datetime.fromtimestamp(i['date']).strftime('%Y.%m.%d-%H.%M')
                    h = httplib2.Http()
                    response, content = h.request(img)
                    foto = open('C:\\Users\\home\\Desktop\\vk_photo\\' + name + '\\' + str(j['title']) + '\\' + str(
                        y) + ' ' + date + '.jpg', 'wb')
                    foto.write(content)
                    foto.close()
        n += 200

if __name__ == '__main__':
    ids = input('id: ')
    get_photo(ids)


скрипт качает фотки с контакта и охраняет их в те же папки что и на странице пользователя

PS>>>так как только учусь, может кто посоветует как исправить этот быдло код?
Ответ написан
Комментировать
ptitca_zu
@ptitca_zu
Programmer. Reader. Introvert
Комментировать
Sheregeda
@Sheregeda
always be coding
чтобы десериализовать json
import json
try:
    res = json.loads(ans)
except ValueError:
    #обработка случая, когда послан не json
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы