我目前将此数据保存在一个包含多个 JSON 行的文件中(大约 13k 行,但下面的示例已缩短:
{"first_name":"John","last_name":"Smith","age":30}
{"first_name":"Tim","last_name":"Johnson","age":34}
我有以下代码:
import json
import codecs
with open('brief.csv') as f:
for line in f:
tweet = codecs.open('brief.csv', encoding='utf8').read()
data = json.loads(tweet)
print data
print data.keys()
print data.values()
如果我的文件中只有一行数据,这会很好用。但是,我似乎无法弄清楚如何逐行将每一行更改为字典。当我尝试在多行上运行它时,我得到 ValueError(errmsg("Extra data", s end, len(s))) 错误,因为代码只想处理两个花括号,即第一行。我最终希望能够选择某些键(如 first_name 和 age),然后仅从我的文件中打印出这些值。
知道如何实现吗?
请您参考如下方法:
你正在为每一行读取整个文件一次......尝试这样的事情:
import json
import codecs
tweets = []
with codecs.open('brief.csv', encoding='utf8') as f:
for line in f.readlines():
tweets.append(json.loads(line))
print tweets
for tweet in tweets:
print tweet.keys()
print tweet['last_name']
