我以前从未使用过 JSON 文件。我有这个新闻分类数据集。我想将其放入 Pandas 数据框中。 它看起来像这样:
{"content": "Unions representing workers at Turner Newall say they are 'disappointed' after talks with stricken parent firm Federal Mogul.","annotation":{"notes":"","label":["Business"]},"extras":null,"metadata":{"first_done_at":1521027375000,"last_updated_at":1521027375000,"sec_taken":0,"last_updated_by":"nlYZXxNBQefF2u9VX52CdONFp0C3","status":"done","evaluation":"NONE"}}
{"content": "SPACE.com - TORONTO, Canada -- A second\\team of rocketeers competing for the #36;10 million Ansari X Prize, a contest for\\privately funded suborbital space flight, has officially announced the first\\launch date for its manned rocket.","annotation":{"notes":"","label":["SciTech"]},"extras":null,"metadata":{"first_done_at":1521027375000,"last_updated_at":1521027375000,"sec_taken":0,"last_updated_by":"nlYZXxNBQefF2u9VX52CdONFp0C3","status":"done","evaluation":"NONE"}}
还有更多条目,但我只发布了其中两个。每个条目都用 {} 括起来。每个条目有 4 个键:“内容”、“注释”、“附加”、“元数据”。我想将其放在数据框中,并将上述键作为列。
我尝试了 json 库和 Pandas.read_json 函数,但都给了我错误。
with open('News-Classification-DataSet.json') as data_file:
df=json.load(data_file)
这给出了一个错误:JSONDecodeError:额外数据:第 2 行第 1 列(字符 378)
最佳答案
我相信您必须读取该文件的每一行,因为您的方式不是有效的 json 格式。
因此请阅读:
import json
data = []
with open('News-Classification-DataSet.json') as f:
for line in f:
data.append(json.loads(line))
现在您应该能够使用它,但是,您想要什么作为数据帧输出?
如果您想直接进入数据框,您可以按照建议进行操作:
df = pd.read_json("News-Classification-DataSet.json", lines=True)
但是你有嵌套的列,我不知道你想如何处理它。
关于python - 如何将此 JSON 文件存储在 Pandas 数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55742711/