Ответы пользователя по тегу JSON
  • Как записать спарсенные данные в json?

    ScriptKiddo
    @ScriptKiddo
    Как записать спарсенные данные в json?

    import json
    
    result = [1, 2, 3, 'Тестовый текст']
    
    with open('result.json', 'w', encoding='utf8') as f:
        json.dump(result, f, ensure_ascii=False)


    Как перейти на следующую страницу для парсинга:
    Добавлять в ссылку номер страницы. Можно через сложение строк, можно через f-строки

    https://pentaschool.ru/trainer/p/4

    page = 1
    test = f'test/page/{page}'
    Ответ написан
    Комментировать
  • Как нужно заменять в json значение?

    ScriptKiddo
    @ScriptKiddo
    test.json

    {"2000000003": {"amv": true, "amvl": true, "whoa": true}}
    {"2000000004": {"amv": true, "amvl": true, "whoa": true}}


    import json
    
    target_id = '2000000004'
    
    result = []
    with open('test.json', encoding='UTF-8') as source, \
            open('test_out.json', 'w', encoding='UTF-8') as out:
        for line in source:
            parsed_json_line = json.loads(line)
            if target_id in parsed_json_line.keys():
                parsed_json_line[target_id]['amv'] = False
            out.write(f'{json.dumps(parsed_json_line)}\n')


    Old
    import json
    
    result = []
    with open('test.json', encoding='UTF-8') as f:
        for line in f:
            result.append(json.loads(line))
    
    target_id = '2000000004'
    
    for i, item in enumerate(result):
        if target_id in item.keys():
            result[i][target_id]['amv'] = False
    
    
    
    with open('test_out.json', 'w', encoding='UTF-8') as f:
        for item in result:
            f.write(f'{json.dumps(item)}\n')


    test_out.json

    {"2000000003": {"amv": true, "amvl": true, "whoa": true}}
    {"2000000004": {"amv": false, "amvl": true, "whoa": true}}
    Ответ написан
    3 комментария
  • Как прочитать XML файл при помощи JSON в Python?

    ScriptKiddo
    @ScriptKiddo
    В ответ приходит JSON, но переносы строк в нем без экранирования.
    Экранируем вручную
    import requests
    import json
    content = requests.get("http://rzhunemogu.ru/RandJSON.aspx?CType=1")
    response_json = json.loads(content.text.replace('\r\n', '\\r\\n'))
    print(response_json)

    OUT

    {'content': 'Смотpишь по телевизоpу pекламу - в ней pекламиpуют жуpнал. Покупаешь жуpнал - а там pеклама магазина. Идёшь в магазин - а там пpодают телевизоpы. Покупаешь телевизоp, включаешь - а там опять pеклама того же жуpнала. Где же выход?!'}
    Ответ написан
    4 комментария