我正在做一個數據幀的轉換到嵌套dict / json。一列稱為“Problematic__c”是布爾類型。
出於某種原因,json索取不接受這個數據類型錯誤:“bool_不是json序列化類型的對象”
我需要這個布爾這個json之後注入Salesforce通過API。我可以易使其字符串,但目的地對象接受布爾。
這是一個python代碼:
all_rows = len(數據)y =[]我的範圍(all_rows): x = dict(數據。iloc[我,2:])x (“Account__r”) = dict類型(數據。iloc [i: 1]) x (“Product_Master__r”) = dict類型(數據。iloc[1:2]我)y.append (x) y = json.dumps (y)
這是預期的輸出:
[{“Recommended_Action__c”:“Z”采取行動,“Extra_Information_JSON__c”:“[{\“\”: \“行動\”,\“價值\”,\“驗證人remplissage \”},{\“\”: \“股票能用的\”,\“價值\”,\“18 \”}]”、“Flag__c”:“Ponctuel破裂”,“Problematic__c”:真的,“Value__c”: 5800.0,“Source_Id__c”:“538.0”,“Batch__c”:“a2e7Y110000dO6WQAU”、“Account__r”: {“Code__c”:“00001 - b”},“Product_Master__r”: {“EAN_Code__c”:“1111111111.0”}}, {....}。.....]
數據幀被稱為“數據”結構與樣本值如下:
“Code__c”:“00001 - b”“EAN_Code__c”:“1111111111.0”“Recommended_Action__c”:“Z”采取行動,“Extra_Information_JSON__c”:“[{\“\”, \“行動\”,\“價值\”,\“驗證人remplissage \”},{\“\”: \“股票能用的\”,\“價值\”,\“18 \”}]”、“Flag__c”:“Ponctuel破裂”,“Problematic__c”:真的,“Value__c”: 5800.0,“Source_Id__c”:“538.0”,“Batch__c”:“a2e7Y110000dO6WQAU”、“Code__c”:“00001 - b”“EAN_Code__c”:“1111111111.0”
你可以使用“to_json”來實現這一目標。這是一個例子:
從pyspark。sql從pyspark.sql進口行。從pyspark.sql進口*類型。功能導入to_json數據=[(1、行(Code__c =“00001 - b”, EAN_Code__c = " 1111111111.0 ", Extra_Information_JSON__c = "[{\“\”: \“行動\”,\“價值\”,\“驗證人remplissage \”},{\“\”: \“股票能用的\”,\“價值\”,\“18 \”}]”,Flag__c =“Ponctuel破裂”,Problematic__c = True))) df =火花。createDataFrame(數據,(“關鍵”、“價值”))顯示(df.select (to_json (df.value) .alias (json)))
這隻是一個例子,你在正確的方向上,你可能需要適應特定的輸入格式。這是為了在一個磚筆記本運行,否則最後的“顯示”將不會工作。
嗨我有類似的問題與布爾,但出口到不同的數據格式。
df2 = df1.select (df1。Account__r df1.Product_Master__r) df2.coalesce (1) .write.format (json) .save(' /道路/ file_name.json ')
謝謝但不確定我如何“寫json直接從dataframe沒有dict和循環”。
df1。Account__r或df1。產品_Master__r simply won't work as there are no such objects as "Account__r " or "Product_Master__r" in a dataframe. That's why I used dict to create it.