2014-12-03 44 views
2

我在orientdb中有一個值,它是一個JSON對象。 假設JSON對象是:Pyorient:如何解析pyorient中的json對象?

a = {"abc":123} 

當我使用pyorient發送一個查詢,它是不是能夠得到在選擇查詢此值,並掛起。 在orientdb控制檯,此JSON對象似乎在一些其他格式的轉換像

a = {abc=123} 

我想這是掛,因爲同樣的問題。 從pyorient查詢是:

client.query("select a from <tablename>") 

此掛起,似乎並不奏效。 你能幫助解析這個JSON對象在pyorient嗎?

回答

0

我使用OrientDb的REST API服務從數據庫中獲取JSON對象字段。 PyOrient在請求JSON對象字段時掛起。

因此,要刪除所需的記錄,並使用REST服務來獲取所有字段,這些字段工作得非常好。

0

pyorient讓你的輸出是這樣的:

一個= { 'ABC': '123'}

和json.loads()函數作品有「,而不是用」,所以要解決這個問題你需要這樣做:

b=str(a) 
b.replace("'",'"') 
json_data = json.loads(b) 
print(json_data.keys()) 
+0

你必須小心你的輸出!如果你需要,添加一個b.replace(「u'」,'「'),好嗎? – el3ctron 2017-07-05 08:38:30

0

我定義一個函數來獲取頂點,你會得到你的頂點後,您可以使用循環來解析JSON結果可以說頂點「根」有一個屬性「名稱「,並在查詢執行後的for循環中,我們可以解析像」res.name「這樣的值來獲取值。

我認爲在最近的版本中,他們修復了懸掛問題。在執行查詢時,我不會遇到掛起問題。

def get_verted(vertex): 
    result = client.command("select * from "+vertex) 
    for res in result: 
     print res.name 
get_vertex("Root")