python 如何提取特定字符中间的内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 如何提取特定字符中间的内容相关的知识,希望对你有一定的参考价值。
列如 @Tom @Jack @JAson:How are you我如何提取出 Tom Jack JAson
解题思路是用正则表达式匹配带@的单词。
第一:正则表达式匹配 @ 开头,后面跟随多个英文字母,匹配到字符串后,把 @ 替换为空,就可以得到用户名.
第二:正则表达式用零宽断言,首先匹配一个位置,它前面是 @,后面是字母:
参考技术A txt = '@Tom @Jack @JAson:How are you'arr1 = txt.split(':')
print(arr1) # ['@Tom @Jack @JAson', 'How are you']
arr2 = arr1[0].split('@')
print(arr2) # ['', 'Tom ', 'Jack ', 'JAson']
PYTHON关于提取返回JSON结果中特定字段的问题
"statuses": [
"created_at": "Tue May 31 17:46:55 +0800 2011",
"id": 11488058246,
"text": "求关注。",
"source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",
"favorited": false,
"truncated": false,
』
比如返回了个这个,如何提取里面的TEXT的内容
simplejson的库可以方便的完成JSON的生成和解析,这个包已经包含在Python2.6中,就叫json 主要包含四个方法:
dump和dumps(从Python生成JSON),load和loads(解析JSON成Python的数据类型)dump和dumps的唯一区别是
dump会生成一个类文件对象,dumps会生成字符串,同理load和loads分别解析类文件对象和字符串格式的JSON
import json
dic =
'str': 'this is a string',
'list': [1, 2, 'a', 'b'],
'sub_dic':
'sub_str': 'this is sub str',
'sub_list': [1, 2, 3]
,
'end': 'end'
json.dumps(dic)
#output:
#'"sub_dic": "sub_str": "this is sub str", "sub_list": [1, 2, 3], "end": "end", "list": [1, 2, "a", "b"], "str": "this is a string"'
举个简单的例子就是:
import json
s = json.loads('"name":"test", "type":"name":"seq", "parameter":["1", "2"]')
print s
print s.keys()
print s["name"]
print s["type"]["name"]
print s["type"]["parameter"][1] 参考技术A 楼主,json是给javascript使用的。如果是python后台放回到前台,那么在前台使用javascript解析使用就可以了。如果要用python解析json,如下:
先import json导入json模块,
然后加载json编码
如f是读取网页得到的json结构
加载:json_r=json.loads(f)
就可以向操作字典那样操作json_r了 参考技术B
把这个数据存在一个text里。
"statuses": [
"created_at": "Tue May 31 17:46:55 +0800 2011",
"id": 11488058246,
"text": "求关注。",
"source": "<a href='http://weibo.com' rel='nofollow'>新浪微博</a>",
"favorited": false,
"truncated": false
]
然后用以下程序读取。
def main():
import json
file = open("2.txt","r")
lines = []
for line in file:
lines.append(line.strip())
str = "".join(lines)
js = json.loads(str)
print js.get("statuses")[0].get("text")
if __name__=="__main__":
main()
即可得到结果。
首先,你的这个json格式有问题
其次,给你一个例子:
#!/usr/bin/python# -*- coding: utf-8 -*-
import json
jsonstring ='"text": "hellworld", "__module__": "MyObj", "__class__": "__main__" '
def main():
data = json.loads(jsonstring)
# 获取text内容
print data['text']
if __name__ == '__main__':
main() 参考技术D 直接调用json模块,然后用它的load方法,就可以变成一个字典。你可以按字典的方法访问每个值。
json模块是内置 的。
以上是关于python 如何提取特定字符中间的内容的主要内容,如果未能解决你的问题,请参考以下文章