如何从json中提取信息?

时间:2013-04-25 10:41:22

标签: python json

我试图从json数据中提取一些信息。在下面的代码中,我首先提取包含我想要的信息的json数据部分,然后将其存储在一个文件中。然后我试图打开这个文件,我得到了我的代码后面的错误。你能帮我找到我错的地方吗?

import json
import re

input_file = 'path'
text = open(input_file).read()
experience = re.findall(r'Experience":{"positionsMpr":{"showSection":true,"  (.+?),"visible":true,"find_title":"Find others',text)
output_file = open ('/home/evi.nastou/Documenten/LinkedIn_data/Alewijnse/temp', 'w')
output_file.write('{'+experience[0]+'}')
output_file.close()

text = open('path/temp')
input_text = text.read()
data = json.load(input_text)
positions = json.dumps([s['companyName'] for s in data['positions']])
print positions

错误:

Traceback (most recent call last):
  File "test.py", line 13, in <module>
    data = json.load(input_text)
  File "/home/evi.nastou/.pythonbrew/pythons/Python-2.7.2/lib/python2.7/json/__init__.py", line 274, in load
     return loads(fp.read(),
 AttributeError: 'str' object has no attribute 'read'

1 个答案:

答案 0 :(得分:3)

您想使用json.loads()(请注意s),传递文件对象而不是.read()的结果:

text = open('path/temp')
data = json.load(text)

json.load()接受一个打开的文件对象,但是你传递了一个字符串; json.loads()需要一个字符串。