2013-10-31 45 views
1

我正在Python中運行要在Pig中使用的函數。由於Pig使用Jython運行Python,因此它無法訪問json導入。在不使用「json」的情況下在Python中創建Json導入

我試着寫一本字典,並將它作爲JSON,而是因爲它有「,而不是」,這不是有效的JSON任何建議

+4

第一個建議是發佈您的代碼。 :)。讓我們看看你的嘗試。 – jramirez

+3

http://stackoverflow.com/questions/9765305/portable-json-module-in-jython – ThinkChaos

+2

歡迎來到堆棧溢出!看起來你希望我們爲你寫一些代碼。 儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常僅在海報已嘗試自行解決問題時才提供幫助。 證明這一努力的一個好方法是包含迄今爲止編寫的代碼, 示例輸入(如果有的話),期望的輸出和實際獲得的輸出(控制檯輸出,堆棧跟蹤,編譯器錯誤 - 無論什麼適用)。 您提供的細節越多,您可能收到的答案越多。檢查[常見問題]和[問] –

回答

0

這不會在所有情況下工作。?然而,在大多數情況下,你可以使用replace改變了引號:

output.replace("'", '"')

+0

我意識到,@StevenRumbalski。這不是一個全面的答案。 – bozdoz

+0

它不起作用的情況是其中一個字段包含雙引號。 –

0

感謝您的幫助導入JSON庫不是一個非常好的選擇,因爲那時我將取決於一些本身並不包含在豬也不Jython和我不想手動將罐子複製到網格。

我基本上是手工創建的JSON,像這樣:

def convert_to_json(name, is_on, section_ids): 
sectionIdsValues = "" 
i = 0 
for id in section_ids: 
    if i > 0: 
     sectionIdsValues+=', ' 
    sectionIdsValues+=str(id) 
    i+=1 
jsonString = '{"name":"'+ str(bucket_name) +'", "is_on": ' + str(is_on) + ', "section_ids":['+ sectionIdsValues +']}' 
return jsonString 
相關問題