我有这个文件,我从互联网解析。在那里它由一个json格式的文件组成。
我正在尝试将此文件拆分为更小的部分。
例如:
原始档案:
{
"kind": "customsearch#search",
"url": {
"type": "application/json",
"template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"
},
"queries": {
"nextPage": [
{
"title": "Google Custom Search - pagerank",
"totalResults": "14700000",
"searchTerms": "pagerank",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "017576662512468239146:omuauf_lfve"
}
],
"request": [
{
"title": "Google Custom Search - pagerank",
"totalResults": "14700000",
"searchTerms": "pagerank",
"count": 10,
"startIndex": 1,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "017576662512468239146:omuauf_lfve"
}
]
},
"context": {
"title": "CS Curriculum",
"facets": [
[
{
"label": "lectures",
"anchor": "Lectures",
"label_with_op": "more:lectures"
}
],
[
{
"label": "assignments",
"anchor": "Assignments",
"label_with_op": "more:assignments"
}
],
[
{
"label": "reference",
"anchor": "Reference",
"label_with_op": "more:reference"
}
]
]
},
"searchInformation": {
"searchTime": 0.239874,
"formattedSearchTime": "0.24",
"totalResults": "14700000",
"formattedTotalResults": "14,700,000"
},
"items": [
{
"kind": "customsearch#result",
"title": "Lecture slides on PageRank",
"htmlTitle": "Lecture slides on \u003cb\u003ePageRank\u003c/b\u003e",
"link": "https://www.cs.utexas.edu/users/novak/lec5-pagerank.ppt",
"displayLink": "www.cs.utexas.edu",
"snippet": "Distributed Computing Seminar. Lecture 5: Graph Algorithms & PageRank. \nChristophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet. Summer 2007.",
"htmlSnippet": "Distributed Computing Seminar. Lecture 5: Graph Algorithms & \u003cb\u003ePageRank\u003c/b\u003e. \u003cbr\u003e\nChristophe Bisciglia, Aaron Kimball, & Sierra Michels-Slettvet. Summer 2007.",
"cacheId": "CwgPK6hTEZQJ",
"mime": "application/vnd.ms-powerpoint",
"fileFormat": "Microsoft Powerpoint",
"formattedUrl": "https://www.cs.utexas.edu/users/novak/lec5-pagerank.ppt",
"htmlFormattedUrl": "https://www.cs.utexas.edu/users/novak/lec5-\u003cb\u003epagerank\u003c/b\u003e.ppt",
"pagemap": {
"metatags": [
{
"author": "jhebert",
"last saved by": "Google"
}
]
}
},
{
"kind": "customsearch#result",
"title": "The PageRank Citation Ranking: Bringing Order to the Web January ...",
"htmlTitle": "The \u003cb\u003ePageRank\u003c/b\u003e Citation Ranking: Bringing Order to the Web January \u003cb\u003e...\u003c/b\u003e",
"link": "http://www.cis.upenn.edu/~mkearns/teaching/NetworkedLife/pagerank.pdf",
"displayLink": "www.cis.upenn.edu",
"snippet": "Jan 29, 1998 ... We compare PageRank to an idealized random Web surfer. We show how to ... \nThis ranking, called PageRank, helps search engines and.",
"htmlSnippet": "Jan 29, 1998 \u003cb\u003e...\u003c/b\u003e We compare \u003cb\u003ePageRank\u003c/b\u003e to an idealized random Web surfer. We show how to ... \u003cbr\u003e\nThis ranking, called \u003cb\u003ePageRank\u003c/b\u003e, helps search engines and.",
"cacheId": "akmuPYNhiKMJ",
"mime": "application/pdf",
"fileFormat": "PDF/Adobe Acrobat",
"formattedUrl": "www.cis.upenn.edu/~mkearns/teaching/.../pagerank.pdf",
"htmlFormattedUrl": "www.cis.upenn.edu/~mkearns/teaching/.../\u003cb\u003epagerank\u003c/b\u003e.pdf",
"pagemap": {
"cse_image": [
{
"src": "x-raw-image:///9a2d934c7c41f83c4c97c3fb9a4cb4cc8fbcb453aaf1002ed6f970005773aa0e"
}
],
"cse_thumbnail": [
{
"width": "262",
"height": "193",
"src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQcCouA-BJlMWA0HZNMSxsXzbqIZzgu6tXXRqiuse2sttpJaNK2b0cNbm4"
}
],
"metatags": [
{
"producer": "AFPL Ghostscript 7.0",
"creator": "dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software",
"title": "prpaperdraft.dvi"
}
]
}
},
{
"kind": "customsearch#result",
"title": "MATH 51 LECTURE NOTES: HOW GOOGLE RANKS WEB PAGES ...",
"htmlTitle": "MATH 51 LECTURE NOTES: HOW GOOGLE RANKS WEB PAGES \u003cb\u003e...\u003c/b\u003e",
"link": "http://stanford.edu/class/math51/PageRank.pdf",
"displayLink": "stanford.edu",
"snippet": "Google's method1 is called the PageRank algorithm and was developed by \nGoogle founders Sergey Brin and Larry Page while they were graduate students.",
"htmlSnippet": "Google's method1 is called the \u003cb\u003ePageRank\u003c/b\u003e algorithm and was developed by \u003cbr\u003e\nGoogle founders Sergey Brin and Larry Page while they were graduate students.",
"cacheId": "RKV6ZEmHrjUJ",
"mime": "application/pdf",
"fileFormat": "PDF/Adobe Acrobat",
"formattedUrl": "stanford.edu/class/math51/PageRank.pdf",
"htmlFormattedUrl": "stanford.edu/class/math51/\u003cb\u003ePageRank\u003c/b\u003e.pdf",
"pagemap": {
"metatags": [
{
"producer": "pdfTeX-1.40.13",
"creator": "TeX",
"creationdate": "D:20130604152429-07'00'",
"moddate": "D:20130604152429-07'00'",
"fullbanner": "This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) kpathsea version 6.1.0"
}
]
}
},
处理后的文件
{u' snippet':u'分布式计算研讨会。第5讲:图算法&网页排名。 \ nChristophe Bisciglia,Aaron Kimball,& Sierra Michels-Slettvet。 2007年夏季。', 你的标题':你在PageRank'}上的演讲幻灯片 {u' snippet':你&1998; 1998年1月29日......我们将PageRank与理想化的随机网络冲浪者进行比较。我们展示了如何... \ n这个名为PageRank的排名有助于搜索引擎和。', 你的头衔':你的PageRank引用排名:将订单带到网上1月......'} {u'摘录':你" Google的方法1被称为PageRank算法,由\ nGoogle创始人谢尔盖·布林和拉里·佩奇在他们是研究生时开发。", 你的标题':你的数学51讲座笔记:GOOGLE如何排名网页......'}
分为三个不同的文本文件/ .txt文件/ .json文件
每个人都使用{u'摘录' ......'}
尝试执行此操作以运行文本比较过程
P.S。:我已经删除了我需要的唯一部分是标题和片段部分。 因此,我可能在这些过程中丢失了json格式。
答案 0 :(得分:0)
由于您似乎能够找到输入的正确部分,因此您应该能够将其写入独立文件。我假设您有某种循环,您可以在其中找到相关数据:
fileno = 1
while True: # or whatever you use to loop over your input
# parse input
# ...
# have the 'snippet'-part in a variable
with open('file_{:02d}.txt'.format(fileno), 'w') as f:
fileno += 1
f.write(snippet_var + "\n")
这将为您提供编号文件,从1开始,带前导零。如果我的假设是错误的,请更新您的问题以显示您当前的做事方式。
此外,如果你想要做的就是提取JSON对象的“片段”属性,我建议不要“预处理”。