我有一个文本文档,我想在特定关键字后复制一行中的所有内容。我该怎么做?
I have a text document, and I want to copy everything in a line after a specific keyword. How would I do this?
更具体地说,我通过 Google Takeout 通过 google 视频群聊下载了我所有的消息,但其中很多是对我无用的数据。我唯一关心的是实际消息,甚至不是时间戳。 .json 文件中的每条消息都有单独的一行,看起来像
"text" : "[actual message in here, including the brackets]"
那么我如何提取所有消息,并最好将它们按时间顺序放在不同的行中? (它们都已经按顺序排列,.json 文件的顶部是最新的消息,底部是最旧的)也许有人可以下载他们自己的 Google 视频群聊外卖文件来尝试执行此操作。任何帮助,将不胜感激。 Python 可能最适合这项任务,但任何能够完成这项工作的编程语言都足够了。
您可以使用 python 完成此操作的一种方法是将 json 文件加载到字典数据结构,然后打印回您想要的值。
您没有指定 json 的确切结构,因此如果 json 是一个由包含 'text' 键的对象组成的数组,那么这将完成工作(根据 json 结构更改此设置):
import json
hangout_data = open('hangout_data') #Load the json file into a variable as text.
hangout_dict = json.loads(hangout_data) #Convert the json text to a dictionary.
for key, value in hangout_dict.iteritems(): #Go over the dictionary
print(value['text'][1:-1]) #print the text property of each object in the array. [1:-1] strips the brackets.
希望这对您有所帮助。非常欢迎您 post 确切的结构,我将提供更具体的答案。
如果您只想将内容视为纯文本:
file = open('filepath', 'r')
for line in file:
strippedline=line.lstrip().rstrip() #lstrip removes leading white space, rstrip removes trailing '\n' (and other white space)
if strippedline.startswith('"text" :'):
message = ':'.join(strippedline.split(':')[1:])
print message
可能最好只通过本机 json
关键字命令。
这是一个输入文件:
"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including : the brackets and some ':' ]"
"texat" : "[This isn't a legal message]"
"text" : "[actual message in here, including the brackets. Note leading white space ]"
和输出:
"[actual message in here, including the brackets]"
"[actual message in here, including the brackets]"
"[actual message in here, including : the brackets and some ':' ]"
"[actual message in here, including the brackets. Note leading white space ]"
更具体地说,我通过 Google Takeout 通过 google 视频群聊下载了我所有的消息,但其中很多是对我无用的数据。我唯一关心的是实际消息,甚至不是时间戳。 .json 文件中的每条消息都有单独的一行,看起来像
"text" : "[actual message in here, including the brackets]"
那么我如何提取所有消息,并最好将它们按时间顺序放在不同的行中? (它们都已经按顺序排列,.json 文件的顶部是最新的消息,底部是最旧的)也许有人可以下载他们自己的 Google 视频群聊外卖文件来尝试执行此操作。任何帮助,将不胜感激。 Python 可能最适合这项任务,但任何能够完成这项工作的编程语言都足够了。
您可以使用 python 完成此操作的一种方法是将 json 文件加载到字典数据结构,然后打印回您想要的值。
您没有指定 json 的确切结构,因此如果 json 是一个由包含 'text' 键的对象组成的数组,那么这将完成工作(根据 json 结构更改此设置):
import json
hangout_data = open('hangout_data') #Load the json file into a variable as text.
hangout_dict = json.loads(hangout_data) #Convert the json text to a dictionary.
for key, value in hangout_dict.iteritems(): #Go over the dictionary
print(value['text'][1:-1]) #print the text property of each object in the array. [1:-1] strips the brackets.
希望这对您有所帮助。非常欢迎您 post 确切的结构,我将提供更具体的答案。
如果您只想将内容视为纯文本:
file = open('filepath', 'r')
for line in file:
strippedline=line.lstrip().rstrip() #lstrip removes leading white space, rstrip removes trailing '\n' (and other white space)
if strippedline.startswith('"text" :'):
message = ':'.join(strippedline.split(':')[1:])
print message
可能最好只通过本机 json
关键字命令。
这是一个输入文件:
"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including the brackets]"
"text" : "[actual message in here, including : the brackets and some ':' ]"
"texat" : "[This isn't a legal message]"
"text" : "[actual message in here, including the brackets. Note leading white space ]"
和输出:
"[actual message in here, including the brackets]"
"[actual message in here, including the brackets]"
"[actual message in here, including : the brackets and some ':' ]"
"[actual message in here, including the brackets. Note leading white space ]"