RWa*_*g21 11 python json python-3.x pandas
我正在尝试制作一个简单的应用程序,从歌曲中获取歌词并保存它们,我正在使用lyricgenius创建一个包含我请求的歌曲歌词的 JSON 文件,但是,我不知道如何解析 JSON 文件中的数据。我尝试按照本教程进行操作,但是当我开始使用 Pandas 时遇到错误。
创建 JSON 文件的代码
import lyricsgenius as genius
import os
os.getcwd()
geniusCreds = "qlDFcHWqCRpSfq0pVTctt1ZhDc4wHF6lpP5WGODh4iVQB7yTPn7Hw6SjWAFiCdxa"
artist_name = "Steely Dan"
api = genius.Genius(geniusCreds)
artist = api.search_artist(artist_name, max_songs=3)
artist.save_lyrics()
Run Code Online (Sandbox Code Playgroud)
从 JSON 文件读取数据的代码
import pandas as pd
import os
Artist = pd.read_json("Lyrics_SteelyDan.json")
df = pd.DataFrame.from_dict(Artist['songs'])
df.head
Run Code Online (Sandbox Code Playgroud)
每当我运行上面的代码时,我都会收到错误,任何有关如何修复错误或更好的方法来解析数据的帮助将不胜感激,谢谢。
"c:/Users/Admin/Desktop/Steely Dan/Data.py"
Traceback (most recent call last):
File "c:/Users/Admin/Desktop/Steely Dan/Data.py", line 5, in <module>
Artist = pd.read_json("Lyrics_SteelyDan.json")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\json\_json.py", line 592, in read_json
result = json_reader.read()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\json\_json.py", line 717, in read
obj = self._get_object_parser(self.data)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\json\_json.py", line 739, in _get_object_parser
obj = FrameParser(json, **kwargs).parse()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\json\_json.py", line 849, in parse
self._parse_no_numpy()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\json\_json.py", line 1093, in _parse_no_numpy
loads(json, precise_float=self.precise_float), dtype=None
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 411, in __init__
mgr = init_dict(data, index, columns, dtype=dtype)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\construction.py", line 257, in init_dict
return arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\construction.py", line 77, in arrays_to_mgr
index = extract_index(arrays)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\construction.py", line 368, in extract_index
raise ValueError("arrays must all be same length")
ValueError: arrays must all be same length
Run Code Online (Sandbox Code Playgroud)
mak*_*kis 19
如果行有不同的长度,因此原始代码将失败。
尝试这个:
import json
with open('Lyrics_SteelyDan.json') as json_data:
data = json.load(json_data)
df = pd.DataFrame(data['songs'])
df['lyrics']
Run Code Online (Sandbox Code Playgroud)
另请阅读: https: //hackersandslackers.com/json-into-pandas-dataframes/
| 归档时间: |
|
| 查看次数: |
29691 次 |
| 最近记录: |