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)
Ich füge JSON -String hinzu, um die JSONB -Spalte in Python mit der SQLalchemy -Bibliothek zu posten.[code]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) [/code] Danke [b] @snakecharmerb [/b]
Verwenden der Java 8 -Stream -API Wie kann ich eine Karte zum Paar List, in der der linke Paarwert die Karte und die MAP -Taste ist, und die von der linken Paarwert verflachen kann. Rechts ist der...
Ich habe also versucht, eine Verbindung zum IBM DB2 -Server herzustellen, das in den letzten Tagen auf IBM Cloud gehostet wurde, und habe es geschafft, mit den bereitgestellten Anmeldeinformationen...
Ich habe in meinem FastAPI-Projekt ein Verbindungsleckproblem. Die Verbindungen werden nicht ordnungsgemäß geschlossen und bleiben im Ruhezustand. Trotz meiner Versuche, Verbindungen sorgfältig zu...