rest_framework_xml 解析xml成Python 字典格式数据对象

Python75

rest_framework_xml 解析xml成Python 字典格式数据对象

原创

ch3nnn博主文章分类:Python ©著作权

文章标签 xml d3 数据 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者ch3nnn的原创作品,请联系作者获取转载授权,否则将追究法律责任

XML

test.jpeg    qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg    "930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7"          JPEG      1664      2338      93      0xe0e0e0      0                  JPEG      1664      2338      234344      93      1              王懿馨:101005:[object MouseEvent]                  1430,396          1432,241          1586,242          1587,397
import iofrom rest_framework_xml.parsers import XMLParser# response.text ==> xmls = io.StringIO(response.text)parser_data = XMLParser().parse(s)

解析后数据

{    'OriginalInfo': {        'Key': 'test.jpeg',        'Location': 'qr-code-1305143506.cos.ap-shanghai.myqcloud.com/test.jpeg',        'ETag': '"930b8ceb82c9e7ed3dc61bdc0f8577065f7484a7"',        'ImageInfo': {            'Format': 'JPEG',            'Width': 1664,            'Height': 2338,            'Quality': 93,            'Ave': '0xe0e0e0',            'Orientation': 0        }    },    'ProcessResults': {        'Object': {            'Format': 'JPEG',            'Width': 1664,            'Height': 2338,            'Size': 234344,            'Quality': 93,            'CodeStatus': 1,            'QRcodeInfo': {                'CodeUrl': '王懿馨:101005:[object MouseEvent]',                'CodeLocation': {                    'Point': '1587,397'                }            }        }    }}
  • 收藏
  • 评论
  • *举报

上一篇:Python 枚举类 自定义状态

下一篇:python中for循环的底层实现

Original: https://blog.51cto.com/u_15722381/5483111
Author: ch3nnn
Title: rest_framework_xml 解析xml成Python 字典格式数据对象



相关阅读1

Title: 用python爬取jk小姐姐照片慢慢看「本地直接下载版」

我这里简单把下载写了下,直接运行代码就能下载,默认主下载目录是 D:\bcy ,一个用户图片一个文件夹,也可以自己修改文件主文件夹,没有文件夹会自动创建

只需要安装Python3环境和requests库就能使用,我用的Python版本是3.9

很多人学习蟒蛇,不知道从何学起。

很多人学习寻找python,掌握了基本语法之后,不知道在哪里案例上手。

很多已经可能知道案例的人,却不怎么去学习更多高深的知识。

这三类人,我给大家提供一个好的学习平台,免费获取视频教程,电子书,以及课程的源代码!

QQ群:101677771

欢迎加入,一起讨论学习

下载效果

代码如下:

<span class="hljs-keyword">import json
<span class="hljs-keyword">import os.path
<span class="hljs-keyword">import time

<span class="hljs-keyword">import requests

url = <span class="hljs-string">"https://bcy.net/apiv3/common/circleFeed"

par = {
    <span class="hljs-string">'circle_id': <span class="hljs-number">492
}

header = {
    <span class="hljs-string">'User-Agent': <span class="hljs-string">'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62',
    <span class="hljs-string">'Referer': <span class="hljs-string">'https://bcy.net/tag/492'
}

res = requests.get(url, headers=header, params=par)
res_encode = res.text.encode(<span class="hljs-string">'utf-8')
res_json = json.loads(res_encode)

<span class="hljs-keyword">for item <span class="hljs-keyword">in res_json[<span class="hljs-string">'data'][<span class="hljs-string">'items']:
    name = item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'uname']
    <span class="hljs-keyword">if <span class="hljs-keyword">not os.path.exists(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}'):
        os.makedirs(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')
        os.chdir(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')
    <span class="hljs-keyword">else:
        os.chdir(<span class="hljs-string">f'D:\\bcy\\<span class="hljs-subst">{name}')

    avatar = item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'avatar']
    avatar_name = str(avatar).rsplit(<span class="hljs-string">'.image')[<span class="hljs-number">0]
    avatar_name1 = str(avatar_name).rsplit(<span class="hljs-string">'/')[<span class="hljs-number">-1]
    print(<span class="hljs-string">f'<span class="hljs-subst">{avatar_name1}.jpg')
    <span class="hljs-keyword">with open(<span class="hljs-string">f'<span class="hljs-subst">{avatar_name1}.jpg', <span class="hljs-string">'wb') <span class="hljs-keyword">as f1:
        f1.write(requests.get(avatar, headers=header).content)
    print(name, avatar_name1)

    <span class="hljs-keyword">for image <span class="hljs-keyword">in item[<span class="hljs-string">'item_detail'][<span class="hljs-string">'image_list']:
        images = image[<span class="hljs-string">'path']
        images_name = str(images).rsplit(<span class="hljs-string">'.image')[<span class="hljs-number">0]
        images_name1 = str(images_name).rsplit(<span class="hljs-string">'/')[<span class="hljs-number">-1]
        <span class="hljs-keyword">with open(<span class="hljs-string">f'<span class="hljs-subst">{images_name1}.jpg', <span class="hljs-string">'wb') <span class="hljs-keyword">as f2:
            f2.write(requests.get(images, headers=header).content)
        print(<span class="hljs-string">f'<span class="hljs-subst">{images_name1}.jpg')
    time.sleep(<span class="hljs-number">1)
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

补充

2022.1.1-11:01

并没有失效,502可能是你下载太快被禁止了,我本地使用没有问题

Original: https://www.cnblogs.com/sn5200/p/15878848.html
Author: Python可乐的呀
Title: 用python爬取jk小姐姐照片慢慢看「本地直接下载版」

相关阅读2

Title: python3.9安装pyqt5,并设置pycharm

python3.9安装pyqt,并设置pycharm

前言

这个学期的暑假实训需要使用pyqt开发gui界面,然后我的python不知道发生了什么,安装总是爆出各种奇怪的错误,安装完后,开发和运行的过程中也发生了很多的离奇的问题,我浪费了很多的时间在解决各种报错上,项目进度被耽误了许多,幸运的是后来得到了一份大佬打包好的pyqt运行环境,这才顺利的完成了整个开发过程。
在结束开发后,我决定重装python,并且重新认真的安装一次pyqt,在经过几次重装后,终于得到了一个能够正确运行的开发环境,未来一段时间都不会受到相关困扰了。
于是我将这次重装的过程和一些思索写在这里,以供我自己未来查阅和其他人参考。

python的版本

在我写这篇文章的这个时间,安装pyqt5的python版本应该是python3.9较为合适,使用python3.10安装会出现问题。
pyqt5能在python3.10 环境安装成功的版本是5.15.6 , 而pyqt5-tools的最新版本是:pyqt5-tools 5.15.4.3.2,所以就会出现这样一个状况,python3.10只能安pyqt5 5.15.6,而pyqt5-tools只能到pyqt5-tools 5.15.4.3.2,tools的版本跟不上,所以在安装tools的时候怎么安都安不上。
这种问题不仅仅是出现在pyqt,我记得曾经学深度学习时,下载某些三方库的时候也会发生版本不兼容的问题,我得到的一个经验就是,如果允许,尽量不要安装最新的语言版本,这会导致某些第三方库版本跟不上,我在这次实训中安装pyqt的问题就有一部分是自作聪明的安装了最新的python。

安装sip、pyqt、pyqt-tools和qscintilla

在安装pyqt前必须先安装sip包

pip install sip

wanchengsip的安装后,安装pyqt和pyqt-tools,
可以直接使用命令:

pip install PyQt5
pip install PyQt5-tools

不过国外的源,下载起来实在太慢了,有些时候还会超时,建议使用国内的镜像。

pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple

另外,还要额外下载一个qscintilla的库,他本来是包含在pyqt里的才对,但是不知道为什么总是会"发生找不到Qsci模块"的错误,我找到的解决方法就是额外下载相关的包,大概原因仿佛也是版本兼容问题?下载的命令如下。

pip install qscintilla -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

完成以上下载没问题的话(反正我重装的python3.9是没有问题发生的),会在python的安装目录的Lib/site-packages下看到如下的目录结构。
rest_framework_xml 解析xml成Python 字典格式数据对象

接着需要验证一下我们的安装是否成功:我们使用python自带的IDLE shell,然后输入

import PyQt5
import PyQt5.Qsci  #&#x8FD9;&#x662F;&#x4E3A;&#x4E86;&#x9A8C;&#x8BC1;Qsci&#x662F;&#x5426;&#x5B89;&#x88C5;&#x6210;&#x529F;
help(PyQt5)
help(PyQt5.Qsci)

如果结果类似如下则安装成功。可以使用pyqt进行基本的gui开发了。
rest_framework_xml 解析xml成Python 字典格式数据对象

有关pycharm的设置

经过以上的内容,可以使用pyqt进行开发,但是我们可以进一步设置pycharm以此来方便开发。
pyqt的tools中包含了designer.exe文件,可以用于设计ui界面。把他设定为pycharm的一个外部工具,会比在外面不停调用方便的多。
我们点击pycharm的文件->设置->工具外部工具,点击如下图所示的加号,就能够添加一个外部工具。

rest_framework_xml 解析xml成Python 字典格式数据对象
。。。。。。未完待续

Original: https://www.cnblogs.com/Akiyama-tsuki/p/16519080.html
Author: Akiyama_tsuki
Title: python3.9安装pyqt5,并设置pycharm

相关阅读3

Title: Python爬取全球最大视频网站YouTube视频

前言

作为目前全世界最大的视频网站,它几乎全是用Python来写的
该网站当前行业内在线视频服务提供商,该网站的系统每天要处理上千万个视频片段,为全球成千上万的用户提供高水平的视频上传、分发、展示、浏览服务。2015年2月,央视首次把春晚推送到该网站。
今天,我们就要用Python来快速批量下载该网站的视频

开发环境

版 本: python 3.8
编辑器:pycharm 2021.2
第三方模块:requests + tqdm

所需模块

import requests
import re
import json
from tqdm import tqdm
import os

开始代码编写

请求数据

headers = {
    'cookie': 'VISITOR_INFO1_LIVE=9qZVrzB27uI; PREF=f4=4000000&tz=Asia.Shanghai; _ga=GA1.2.621834420.1648121145; _gcl_au=1.1.1853038046.1648121145; NID=511=Zc1APdmEbCD-iqVNVgI_vD_0S3LVI3XSfl-wUZEvvMU2MLePFKsQCaKUlUtchHSg-kWEVMGOhWUbxpQMwHeIuLjhxaslwniMh1OsjVfmOeTfhpwcRYpMgqpZtNQ7qQApY21xEObCvIez6DCMbjRhRQ5P7siOD3X87QX0CFyUxmY; OTZ=6430350_24_24__24_; GPS=1; YSC=0E115KqM_-I; GOOGLE_ABUSE_EXEMPTION=ID=d02004902c3d0f4d:TM=1648620854:C=r:IP=47.57.243.77-:S=YmZXPW7dxbu83bDuauEpXpE; CONSISTENCY=AGDxDeNysJ2boEmzRP4v6cwgg4NsdN4-FYQKHCGhA0AeW1QjFIU1Ejq1j8l6lwAc6c-pYTJiSaQItZ1M6QeI1pQ3wictnWXTOZ6_y8EKlt0Y_JdakwW6srR39-NLuPgSgXrXwtS0XTUGXpdnt4k3JjQ',
    'referer': 'https://www.youtube.com/results?search_query=jk%E7%BE%8E%E5%A5%B3',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
url = 'https://www.有土比.com/watch?v=ImoXcSpR_io'
response = requests.get(url=url, headers=headers)

解析数据

json_str = re.findall('var ytInitialPlayerResponse = (.*?);var', response.text)[0]
json_data = json.loads(json_str)
video_url = json_data['streamingData']['adaptiveFormats'][0]['url']
audio_url = json_data['streamingData']['adaptiveFormats'][-2]['url']
title = json_data['videoDetails']['title']
title = title.replace(' ', '')
title = re.sub(r'[\/:|?*"<>]', '', title)

视频数据

video_pbar = tqdm(total=file_size)
with open(f'{title}.mp4', mode='wb') as f:
    for video_chunk in video.iter_content(1024*1024*2):
        f.write(video_chunk)
        video_pbar.set_description(f'正在下载{title}视频中......')
        video_pbar.update(1024*1024*2)
    video_pbar.set_description('下载完成!')
    video_pbar.close()

音频数据

audio = requests.get(audio_url, stream=True)
file_size = int(audio.headers.get('Content-Length'))
audio_pbar = tqdm(total=file_size)
with open(f'{title}.mp3', mode='wb') as f:
    for audio_chunk in audio.iter_content(1024*1024*2):
        f.write(audio_chunk)
        audio_pbar.set_description(f'正在下载{title}音频中......')
        audio_pbar.update(1024*1024*2)
    audio_pbar.set_description('下载完成!')
    audio_pbar.close()

合并音频和视频

def merge(title):
    ffmpeg = r'D:\Download\ffmpeg\bin\ffmpeg.exe -i ' + title + '.mp4 -i ' + title + '.mp3 -acodec copy -vcodec copy ' + title + '-out.mp4'
    os.popen(ffmpeg)

Original: https://www.cnblogs.com/qshhl/p/16106887.html
Author: 松鼠爱吃饼干
Title: Python爬取全球最大视频网站YouTube视频