<p>JSON需要<code>double quotes</code>作为任何字符串文本</p>
<blockquote>
<p>A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. - <a href="http://www.json.org/" rel="nofollow">http://www.json.org/</a></p>
</blockquote>
<p>解析它的一种方法是使用任何<a href="https://pypi.python.org/pypi/PyYAML" rel="nofollow">YAML parser</a>。<br/>
YAML可以解析JSON,对语法的要求不那么严格</p>
<pre><code>>>> import yaml # from package pyyaml
>>> yaml.load("{'test': 'ok'}")
{'test': 'ok'}
>>> data = yaml.load("{'computer': {'os': {'version': 'blabla', 'name': 'blabla'}, 'app': {'version': 'blabla', 'name': 'blabla'}}}")
>>> data.get('computer').get('app').get('version')
'blabla'
</code></pre>
<p>对于管道分隔的数据,您可以像这样拆分它们,或者使用<code>csv</code>模块来完成。另外,您可以将每个数据块传递给<code>yaml.load</code>,它将处理转换:</p>
<pre><code>import csv
import StringIO
some_file = StringIO.StringIO("0x1337|something else|12456789|UA info|{'computer': {'os': {'version': 'blabla', 'name': 'blabla'}, 'app': {'version': 'blabla', 'name': 'blabla'}}}")
elements = csv.reader(some_file, delimiter="|")
for element in elements[0]:
print(yaml.load(element))
</code></pre>
<p>输出:</p>
<blockquote>
<p>4919<br/>
something else<br/>
12456789<br/>
UA info<br/>
{'computer': {'app': {'version': 'blabla', 'name': 'blabla'}, 'os': {'version': 'blabla', 'name': 'blabla'}}}</p>
</blockquote>