【发布时间】:2013-08-13 13:40:49
【问题描述】:
我创建了一段非常简单的代码来读取文本文件中 JSON 格式的推文,确定它们是否包含 id 和坐标,如果是,则将这些属性写入 csv 文件。这是代码:
f = csv.writer(open('GeotaggedTweets/ListOfTweets.csv', 'wb+'))
all_files = glob.glob('SampleTweets/*.txt')
for filename in all_files:
with open(filename, 'r') as file:
data = simplejson.load(file)
if 'text' and 'coordinates' in data:
f.writerow([data['id'], data['geo']['coordinates']])
我遇到了一些困难,但在出色的JSON Lint 网站的帮助下,我意识到了我的错误。我有多个 JSON 对象,从我读到的内容中,这些对象需要用逗号分隔,并在文件的开头和结尾添加方括号。
我怎样才能做到这一点?我在网上看到了一些示例,其中读取了每一行并将其添加到第一行和最后一行,但是当我加载整个文件时,我并不完全确定如何执行此操作。
【问题讨论】:
-
如果您的 JSON 字符串作为一个条目保存到文件中每行,则不需要这样做。见Loading & Parsing JSON file in python
-
点击该链接会给我一个“无法解码 JSON 对象”错误
-
我说的是“如果”。您最初是如何创建文件的?
-
对不起!我使用 Flume 下载了推文,并将它们通过管道传输到 Hadoop。然后我使用 Hadoop 的“copyToLocal”方法将它们输出到文本文件中。如果我将每条推文放入 JSON Lint 中,它们都是完美的。当他们在一起时,他们就有问题了。
标签: python json simplejson