Я отчаянно пытаюсь нормализовать этот столбец pandas, который содержит структуру json. ВХОДНАЯ ЗАГРУЗКА 486473 "{" "ratingInformation" ": {" "rating" & ...

0
yannickhau 6 Янв 2021 в 16:16

1 ответ

Лучший ответ

Вы должны убедиться, что PAYLOAD - это JSON , прежде чем пытаться нормализовать его.

import json
df = pd.read_csv(io.StringIO("""ENTRID           PAYLOAD
486473  "{""ratingInformation"":{""rating"": 5.0, ""rating_raw"": 5.0, ""numberOfRating"": 9}, ""serviceFeatures"":{""delivery"": true, ""amenities"": [{""Akzeptierte Karten"": ""Kredit, EC"", ""Lieferung möglich"": ""Ja"", ""Parkplatz & Parkhaus"": ""Kundenparkplatz""}]}, ""starRatings"": {""numOneStarRatings"":0,""numTwoStarRatings"":0,""numThreeStarRatings"":0,""numFourStarRatings"":1,""numFiveStarRatings"":8}}"
76975   "{""ratingInformation"":{""rating"": 5.0, ""rating_raw"": 5.0, ""numberOfRating"": 9}, ""serviceFeatures"":{""amenities"": [{""Reservierung möglich"": ""Kein Lieferservice""}]}, ""starRatings"": {""numOneStarRatings"":0,""numTwoStarRatings"":0,""numThreeStarRatings"":0,""numFourStarRatings"":1,""numFiveStarRatings"":8}}"
"""), sep="\s+")
pd.json_normalize(df
                  .assign(PAYLOAD=lambda dfa: dfa["PAYLOAD"].apply(lambda x: json.loads(x)))
                  .to_dict(orient="records")
                 )
1
Rob Raymond 6 Янв 2021 в 21:43