나는 git에서 라이브러리를 복제 했으므로 방금 savePlayerDictionary
메소드를 사용했습니다.TypeError : __dict__는 'unicode'가 아닌 사전으로 설정해야합니다.
json 파일을 저장했는데 모든 것이 정상적으로 보입니다.
하지만
나는 loadPlayerDictionary를 사용하려고
, 나는 오류를 얻을 :TypeError: __dict__ must be set to a dictionary, not a 'unicode'
내 코드 :
def savePlayerDictionary(playerDictionary, pathToFile):
"""
Saves player dictionary to a JSON file
"""
player_json = {name: player_data.to_json() for name, player_data in playerDictionary.items()}
json.dump(player_json, open(pathToFile, 'wb'), indent=0)
def loadPlayerDictionary(pathToFile):
"""
Loads previously saved player dictionary from a JSON file
"""
result = {}
with open(pathToFile, "r") as f:
json_dict = json.load(f)
for player_name in json_dict:
parsed_player = Player(None,None,False)
parsed_player.__dict__ = json_dict[player_name]
result[player_name] = parsed_player
return result
player_data.to_json()
는 다음과 같이 구현됩니다
def to_json(self):
return json.dumps(self.__dict__)
코드는 내가 도망 것은 :
get_ipython().magic(u'matplotlib inline')
import basketballCrawler as bc
import matplotlib.pyplot as plt
players = bc.loadPlayerDictionary("myJson.json")
왜 처음에 '__dict__'에 할당하고 있습니까? '__dict __. update()'를 사용합니다. 그러나 분명히'json_dict [player_name]'은 사전이 아닙니다. –
'to_json()'메서드는 무엇을 반환합니까? –
to_json 메서드는 다음과 같습니다. def to_json (self) : return json.dumps (self .__ dict__) –