Python Sqlalchemy Hinzufügen von Fluchtfiguren zu JSON -String, während sie in die postgresql JSON -Spalte einfügt.Python

Python-Programme
Anonymous
 Python Sqlalchemy Hinzufügen von Fluchtfiguren zu JSON -String, während sie in die postgresql JSON -Spalte einfügt.

Post by Anonymous »

Ich füge JSON -String hinzu, um die JSONB -Spalte in Python mit der SQLalchemy -Bibliothek zu posten.

Code: Select all

survey_data_series = scto_df.loc[int(i)]

survey_data_json_string = json.dumps(survey_data_series.to_dict())
< /code>
Code zum Hinzufügen zu postGreSQL -Datenbank lautet: < /p>
def add_record(self, table_name, record_data):
record = getattr(self, table_name)(**record_data)
self.s.add(record)
self.s.flush()
return(record.id)
< /code>
Mein JSON ist in Protokollen ordnungsgemäß gedruckt < /p>
{"completiondate": "Feb 8, 2022 10:49:29 AM", "submissiondate": "Feb 8, 2022 10:49:29 AM", "starttime": "Feb 8, 2022 10:37:17 AM", "endtime": "Feb 8, 2022 10:49:21 AM", "deviceid": "ac29d854b49a49be", "subscriberid": NaN}
< /code>
Aber wenn es in die Datenbank geht, ist der JSON in einer Zeichenfolge eingeschlossen und ein Escape -Zeichen wird vor jedem Doppelzitat hinzugefügt. < /p>
"{\"completiondate\": \"Feb 8, 2022 10:49:29 AM\", \"submissiondate\": \"Feb 8, 2022 10:49:29 AM\", \"starttime\": \"Feb 8, 2022 10:37:17 AM\", \"endtime\": \"Feb 8, 2022 10:49:21 AM\", \"deviceid\": \"ac29d854b49a49be\", \"subscriberid\": NaN}"
< /code>
, worauf keine der folgenden Abfragen funktioniert: < /p>
SELECT JSON_EXTRACT_PATH_TEXT(survey_data_json::json,'starttime') AS starttime
FROM "Suvita".survey_data_json;

SELECT survey_data_json -> 'starttime' AS starttime
FROM "Suvita".survey_data_json;

SELECT (survey_data_json -> 0)--> '\"starttime\"' AS starttime
FROM "Suvita".survey_data_json; --Gives the whole json string

SELECT * FROM "Suvita".survey_data_json where survey_data_json->>'deviceid'='ac29d854b49a49be';
< /code>
Meine Anforderung besteht darin, die JSON -Spalte abfragen zu können, indem der Schlüsselwert übereinstimmt. Bitte helfen Sie < /p>
gelöst:
Ich habe den Code bearbeitet, um das Wörterbuch direkt an SQLAlchemy -Tabellenobjekt zu übergeben, um die Zeile hinzuzufügen. Es konvertierte automatisch das Wörterbuch in JSON. < /P>
record=self.survey_data_json(surveyid=surveyid,survey_data_json=dict_object)
self.s.add(record)
Danke @snakecharmerb

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post