Skip to main content
 首页 » 编程设计

python之将多行 JSON 转换为 Python 字典

2025年05月04日11myhome

我目前将此数据保存在一个包含多个 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']