python解析cdata(python解析html标签)

本文目录一览:

如何用Python输出漂亮的xml文件

最近要用Python处理一个xml文件。平时习惯了用xml.etree.ElementTree,结果发现此库存在一些让人无法忍受的缺点:

1. 无法处理comment和cdata

2. 输出后的xml文件没有换行,没有缩进,十分难以阅读

于是尝试这用xml.dom.minidom,前两个问题几乎全部解决了。唯一让人看着不爽的是minidom对于text的处理。比如,我期待的xml输入如下:

[html] view plain copy

pre name=”code” class=”html”pre name=”code” class=”html”root

host192.168.0.1/host

/root

但是使用xml.dom.minidom.Document.writexml后,输出的结果却是这样的:

[html] view plain copy

root

host

192.168.0.1

/host

/root

开始的时候,我考虑重写Document.writexml函数,觉得太麻烦,有用牛刀杀鸡之感。后来想想,其实自己的需求非常简单,只是需要对Document的输出结果做个二次处理即可。使用python的正则表达式库就可以实现:

[python] view plain copy

def save_xml(self, file_name):

xml_str = self.m_dom.toprettyxml(indent=” “)

repl = lambda x: “%s/” % x.group(1).strip() if len(x.group(1).strip()) != 0 else x.group(0)

pretty_str = re.sub(r’\n\s*([^]+)/’, repl, xml_str)

open(file_name, ‘w’).write(pretty_str)

先将Document输出到字符串,然后使用正则表达式将text中的空行去掉即可。

黑马程序员的PYthon是国内最早开设的真正人工智能课程。课程全面系统,紧跟时代潮流。

python解析CData

亲,python爬虫的解析框架的我也把握不准,我都是用re里面的正则表达式的匹配

myItems = re.findall(‘a class=”breadInfo” href=”board.jsp(.*?)/a’,unicodePage,re.S)

myItems里面的内容是(.*?)所匹配到的,如果你的这个what,thefuck,你可以写成myItems = re.findall(‘!CDATA[[d(。*?)/d]],所以for i in myItems :

print i 就会得到What,the fuck!

python3.0怎么用json从文件解析

1、说明:

python3通过json模块load函数来解析文件。

2、代码示例:

首先编写一个json文件j.txt,内容如下:

{“errno”:1,”errmsg”:”操作成功!”,”data”:[]}

python代码如下:

import json

with open(‘j.txt’, ‘r’) as fr:

    o = json.load(fr)

    print(o[‘errno’])

    print(o[‘errmsg’])

    print(len(o[‘data’]))

输出如下:

1

操作成功!

3、函数说明:

load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)

反序列化fp(一个.read()包含 – 支持类文件对象一个JSON文件),以一个Python对象。

object_hook是将与被调用的可选功能任何对象文本解码(一个“dict“)的结果。返回值object_hook将用来代替dict。此功能可用于实现自定义解码器(例如JSON-RPC级提示)。

object_pairs_hook是将与被调用的可选功能任何对象的结果与对的有序列表字面解码。该的返回值object_pairs_hook将用来代替dict。

此功能可用于实现依赖于定制解码器命令该键和值对被解码(例如,collections.OrderedDict会记得插入的顺序)。如果object_hook也定义了object_pairs_hook优先。

要使用自定义JSONDecoder子类,与cls指定它kwarg;否则JSONDecoder使用。

4、其它说明:

也可以使用json.loads函数来直接处理字符串,方法如下:

o=json.loads(‘{“errno”:0,”errmsg”:”操作成功!”,”data”:[]}’)

求助:python如何按位解析二进制数据

可以的,二进制是计算机内的表示方法,处理二进制数据是最基本的能力。

如果是二进制字符串转十进制:

 x = ‘10101010’

 int(x, 2)

170

如果是从文件或网络中获取的数据,要知道某一位是0还是1的话,获取的数据可以按字符读取,由于一个字符由8位二进制表示,分别读取1到8位的二进制值就可以了:

 get_char_bit = lambda char, n: (char  (8-n))  1 # 从高到低分别为第1~8位

 data = b’ab’ # 在python3中字符串默认是unicode,所以加上b前缀兼容

 # 在python3中按字符读取byte字符串是数字,而python2读出来的却是字符,但bytearray是一致的都是数字

 data = bytearray(data)

 result = []

 for char in data:

        for i in range(1, 9):

            result.append(get_char_bit(char, i)) 

 result

[0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0]

还有一种比较简单的方法是使用内置的bin函数

 data = bytearray(b’ab’)

 result = []

 for char in data:

        result.extend(bin(char)[2:].rjust(8, ‘0’))

        

 result

[‘0’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’, ‘1’, ‘1’, ‘0’, ‘0’, ‘0’, ‘1’, ‘0’]

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:18
下一篇 2024-12-12 13:18

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29

发表回复

登录后才能评论