首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python中的大型字符串中读取引号中的子字符串

从Python中的大型字符串中读取引号中的子字符串
EN

Stack Overflow用户
提问于 2018-12-07 09:30:17
回答 3查看 62关注 0票数 0

我有以下字符串:

代码语言:javascript
复制
{"name":"INPROCEEDINGS","__typename":"PublicationConferencePaper"},"hasPermiss
ionToLike":true,"hasPermissionToFollow":true,"publicationCategory":"researchSu
mmary","hasPublicFulltexts":false,"canClaim":false,"publicationType":"inProcee
dings","fulltextRequesterCount":0,"requests":{"__pagination__":
[{"offset":0,"limit":1,"list":[]}]},"activeFiguresCount":0,"activeFigures":
{"__pagination__":[{"offset":0,"limit":100,"list":
[]}]},"abstract":"Heterogeneous Multiprocessor System-on-Chip (MPSoC) are 
progressively becoming predominant in most modern mobile devices. These 
devices are required to perform processing of applications within thermal,
 energy and performance constraints. However, most stock power and thermal
 management mechanisms either neglect some of these constraints or rely on 
frequency scaling to achieve energy-efficiency and temperature reduction on 
the device. Although this inefficient technique can reduce temporal thermal
 gradient, but at the same time hurts the performance of the executing task.
 In this paper, we propose a thermal and energy management mechanism which 
achieves reduction in thermal gradient as well as energy-efficiency through 
resource mapping and thread-partitioning of applications with online 
optimization in heterogeneous MPSoCs. The efficacy of the proposed approach is 
experimentally appraised using different applications from Polybench benchmark 
suite on Odroid-XU4 developmental platform. Results show 28% performance 
improvement, 28.32% energy saving and reduced thermal variance of over 76%
 when compared to the existing approaches. Additionally, the method is able to
 free more than 90% in memory storage on the MPSoC, which would have been 
previously utilized to store several task-to-thread mapping 
configurations.","hasRequestedAbstract":false,"lockedFields"

我正在尝试获取“抽象”:“","hasRequestedAbstract"之间的子字符串。为此,我使用以下代码:

代码语言:javascript
复制
    import requests
    #some more codes here........
    to_visit_url = 'https://www.researchgate.net/publication/328749434_TEEM_Online_Thermal-_and_Energy-Efficiency_Management_on_CPU-GPU_MPSoCs'
    this_page = requests.get(to_visit_url)
    content = str(page.content, encoding="utf-8")
    abstract = re.search('\"abstract\":\"(.*)\",\"hasRequestedAbstract\"', content)
    print('Abstract:\n' + str(abstract))

但在抽象变量中,它的值为None。有什么问题吗?如上文所述,如何获取子字符串?

注意:虽然我似乎可以将它读取为JSON对象,但这不是一个选项,因为上面提供的示例文本只是完整html内容的一小部分,很难从中提取JSON对象。

P.S.网页的全部内容,即page.content,可从此处下载:https://docs.google.com/document/d/1awprvKsLPNoV6NZRmCkktYwMwWJo5aujGyNwGhDf7cA/edit?usp=sharing

也可以直接从URL:MPSoCs下载源。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-10 21:40:44

这个答案不是使用regex (正则表达式),而是执行任务。答复如下:

代码语言:javascript
复制
import re
import requests

def fetch_abstract(url = "https://www.researchgate.net/publication/328749434_TEEM_Online_Thermal-_and_Energy-Efficiency_Management_on_CPU-GPU_MPSoCs"):
    test_requests = requests.get(url)
    index = 0
    inner_count = 0
    while index < len(test_requests.text):
            index = test_requests.text.find('[Show full abstract]</a><span class=\"lite-page-hidden', index)
            if index == -1:
                break
            inner_count += 1
            if inner_count == 4:
                #extract the abstract from here -->
                temp = test_requests.text[index-1:]
                index2 = temp.find('</span></div><a class=\"nova-e-link nova-e-link--color-blue')
                quote_index = temp.find('\">')
                abstract = test_requests.text[index + quote_index + 2 : index - 1 + index2]
                print(abstract)
            index += 52

if __name__ == '__main__':
    fetch_abstract()

结果:

异构多处理器片上系统(MPSoC)在现代移动设备中正逐渐成为主流.这些设备需要在热、能和性能约束范围内执行应用程序处理。然而,大多数库存电源和热管理机制要么忽略了这些限制,要么依靠频率缩放来实现设备的节能和降温。虽然这种效率低下的技术可以降低时间的热梯度,但同时也损害了执行任务的性能。在本文中,我们提出了一种热能管理机制,通过资源映射和线程划分,在异构MPSoCs中通过在线优化来降低热梯度和节能。在Odroid-XU4开发平台上使用Polybench基准套件的不同应用,对该方法的有效性进行了实验评估。结果表明,与现有方法相比,系统性能提高了28%,节能率提高了28.32%,热方差降低了76%以上。此外,该方法能够释放超过90%的内存存储在MPSoC上,这本来可以用来存储几个任务到线程的映射配置。

票数 1
EN

Stack Overflow用户

发布于 2018-12-07 09:58:34

re.search不返回解析的结果列表。它返回SRE_Match对象。如果要获得匹配列表,则需要使用re.findall方法。

  1. 测试代码 导入重新导入请求test_pattern =re.compile(‘\“抽象\”:\“(.*)\”,\“hasRequestedAbstract\”) test_requests =requests.get(“MPSoCs"”)test_requests
  2. 结果 非均匀多处理器片上系统(MPSoC)正逐渐成为大多数现代移动设备的主导.这些设备需要在热、能和性能约束范围内执行应用程序处理。然而,大多数库存电源和热管理机制要么忽略了这些限制,要么依靠频率缩放来实现设备的节能和降温。虽然这种效率低下的技术可以降低时间的热梯度,但同时也损害了执行任务的性能。在本文中,我们提出了一种热能管理机制,通过资源映射和线程划分,在异构MPSoCs中通过在线优化来降低热梯度和节能。在Odroid-XU4开发平台上使用Polybench基准套件的不同应用,对该方法的有效性进行了实验评估。结果表明,与现有方法相比,系统性能提高了28%,节能率提高了28.32%,热方差降低了76%以上。此外,该方法能够在MPSoC上释放90%以上的内存,而这些内存以前曾用于存储几个任务到线程的映射配置。
票数 1
EN

Stack Overflow用户

发布于 2018-12-07 10:07:57

当您执行requests.get(...)时,您应该得到请求对象吗?

这些对象非常聪明,您可以使用内置的.json()方法将您在问题中发布的字符串作为python字典返回。

尽管我注意到您发布的链接没有指向任何类似的内容,但是指向了一个完整的html文档。如果你想解析一个这样的网站,你应该去看看漂亮的汤。(https://www.crummy.com/software/BeautifulSoup/)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53666675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档