我在这个项目工作,特殊的角色让我抓狂!我在福伦家找了很多解决办法,但他们没能解决我的问题。在
我有一个带有特殊字符的字符串:
['{"response":{"startRow":0,"endRow":5,"totalRows":5,"data": [{"CODIGO":"72","DESCRICAO":"RECEITA INTRA-ORÇÁMENTÁRIAS DE CONTRIBUÇÕES","PREVISTA":225847716.0,"REALIZADA":165311075.58,"DIFERENCA":60536640.42,"R___":1.0},{"CODIGO":"76","DESCRICAO":"RECEITA INTRA-ORÇAMENTÁRIAS DE SERVIÇOS","PREVISTA":22367493.0,"REALIZADA":3435363.08,"DIFERENCA":18932129.92,"R___":2.0},{"CODIGO":"77","DESCRICAO":"TRANSFERÊNCIAS INTRA-ORÇAMENTÁRIAS CORRENTES","PREVISTA":1218252.0,"REALIZADA":0.0,"DIFERENCA":1218252.0,"R___":3.0},{"CODIGO":"71","DESCRICAO":"RECEITA TRIBUTÁRIA INTRA-ORÇAMENTÁRIA","PREVISTA":12000.0,"REALIZADA":0.0,"DIFERENCA":12000.0,"R___":4.0},{"CODIGO":"79","DESCRICAO":"OUTRAS RECEITAS INTRA-ORÇAMENTÁRIAS CORRENTES","PREVISTA":0.0,"REALIZADA":311785.30,"DIFERENCA":-311785.30,"R___":5.0}]}}']
我必须用正则表达式找到一些具体的字符串,但我必须保留特殊字符。在
我试过一些方法:
^{pr2}$还有很多其他的事情。。。在
但当我用我的模式搜索时:
result = re.findall('(:\"[\w\-r"/" ]+"|:[\w\s.\-r"/" ]+)', html, re.U)
特殊字符不正确。结果是这样的:
[':0', ':2', ':2', ':"94"', ':"DEDU', ':0.0', ':-2748373.25', ':2748373.25', ':1.0', ':"95"', ':"DEDU', ':-1421484000.0', ':-1062829156.22', ':-358654843.78', ':2.0']
[':0', ':5', ':5', ':"72"', ':"RECEITA INTRA-OR', ':225847716.0', ':165311075.58', ':60536640.42', ':1.0', ':"76"', ':"RECEITA INTRA-OR', ':22367493.0', ':3435363.08', ':18932129.92', ':2.0', ':"77"', ':"TRANSFER', ':1218252.0', ':0.0', ':1218252.0', ':3.0', ':"71"', ':"RECEITA TRIBUT', ':12000.0', ':0.0', ':12000.0', ':4.0', ':"79"', ':"OUTRAS RECEITAS INTRA-OR', ':0.0', ':311785.30', ':-311785.30', ':5.0']
它忽略了特殊字符!在
我需要它,因为我将在一个CSV文件中写入数据,它不会处理这个错误。在
使用提示进行的简单测试:
>>> import re
>>> re.findall('\w+', 'Márquez', re.U)
['M\xc3', 'rquez']
我要怎么做才能解决这个问题?在
把我的评论变成一个答案(有点像,因为它不包含regex):
那么
^{pr2}$jsontest.csv
如下所示:我使用了python2.6.8。在
顺便说一句:我从here改编了
UnicodeDictWriter
类。只需向下滚动两三个屏幕,就可以找到原始的UnicodeWriter
类。在您的输入似乎是unicode,但regex不是。。在
尝试将所有正则表达式模式更改为unicode,如下所示:
参考文献:
http://docs.python.org/tutorial/introduction.html#unicode-strings
相关问题 更多 >
编程相关推荐