擅长:python、mysql、java
<p>与其猜测数据的格式,不如找出</em>。在</p>
<ul>
<li>如果您是自己生成的,并且不知道如何在所创建的内容中进行解析,请更改您的代码以生成可以使用生成它的相同库轻松解析的代码,例如JsonLines或CSV。在</li>
<li>如果您是从某个API获取的,请阅读该API的文档并按照文档中的方式进行解析。在</li>
<li>如果有人把文件交给你,让你去解析它,问问别人它是什么格式的。在</li>
</ul>
<hr/>
<p>有时候,你必须以某种格式处理一些粗糙的旧文件,而这些格式从未被记录下来,也没有人记得它是什么。在这种情况下,你必须对它进行反向工程。但接下来您要做的是猜测可能的可能性,并尝试用尽可能多的验证和错误处理来解析它,以验证您的猜测是否正确。在</p>
<p>在本例中,格式看起来很像<a href="http://jsonlines.org/" rel="nofollow noreferrer">JSON lines</a>或{a2}。这两种编码方式都略有不同,每行一个JSON文本,对这些文本、它们的编码方式以及它们之间的空白都有特定的限制。在</p>
<p>因此,虽然像这样的快速脏解析器可能会工作:</p>
<pre><code>with open('tweets.txt') as f:
for line in f:
tweet = json.loads(line)
dosomething(tweet)
</code></pre>
<p>您可能希望使用<a href="https://pypi.python.org/pypi/jsonlines" rel="nofollow noreferrer">^{<cd1>}</a>这样的库:</p>
^{pr2}$
<p>当然,quick&dirty解析器在JSON行上工作这一事实是这种格式的一部分,但是如果您实际上不知道是否有JSON行,那么最好确定一下。在</p>