我不是python中的大師。我不明白爲什麼我不能爲這個def的這個詞典賦予一個值的數組。在python中爲關鍵字典指定數組
這是我如何使用sdk的定義。
order_obj = Order(None)
order_obj.customerIp("14.140.42.67")
order_obj.merchantRefNum(RandomTokenGenerator().generateToken())
order_obj.currencyCode("CAD")
order_obj.totalAmount("1125")
redirect = Redirect(None)
redirect.rel("on_success")
redirect.uri("http://outwander.ca:{}/redirect")
return_keys_list = []
return_keys_list.append('id')
return_keys_list.append('transaction.amount')
redirect.returnKeys(return_keys_list)
redirect_list = []
redirect_list.append(redirect.__dict__)
order_obj.redirect(redirect_list)
'''
Property Return Keys
'''
def returnKeys(self, return_keys):
self.__dict__['returnKeys'] = return_keys
從我能調試,數組轉換成JSON時要sent.The環發現的問題來數組並嘗試轉換內部元素(字符串),但由於默認情況下循環將每個給定參數視爲數組,因此returnKeys參數會被跳過...
'''
Serializing object
@param: Dictionary Object
@return: Serialized data
'''
def serialize(self, obj):
return (json.dumps(self.to_dictionary(obj)))
'''
Convert object to a dictionary
@param: POJO Object
@return: Dictionary Object
'''
def to_dictionary(self, obj):
obj_dict = dict()
for key in obj.__dict__.keys():
try:
if(type(obj.__dict__[key]) is list):
content = []
for count in range(0, obj.__dict__[key].__len__()):
content.append(
self.to_dictionary(obj.__dict__[key][count]))
obj_dict[key] = content
elif(isinstance(obj.__dict__[key], DomainObject)):
obj_dict[key] = self.to_dictionary(obj.__dict__[key])
else:
obj_dict[key] = obj.__dict__[key]
except KeyError:
pass
except AttributeError:
pass
return (obj_dict)
我沒有問題分配一個鍵的值,但當我嘗試將一個數組分配給一個鍵,它不起作用,它只是從JSON輸出忽略這個鍵。
order_obj = Order(None)
order_obj.customerIp("14.140.42.67")
order_obj.merchantRefNum(RandomTokenGenerator().generateToken())
order_obj.currencyCode("CAD")
order_obj.totalAmount("1125")
redirect = Redirect(None)
redirect.rel("on_success")
redirect.uri("http://outwander.ca:{}/redirect")
redirect.returnKeys(('id', 'transaction.amount'))
redirect_list = []
redirect_list.append(redirect.__dict__)
order_obj.redirect((redirect_list))
所以問題是,你有沒有包括在這個問題一些其他的代碼? – khelwood
*代碼拋出異常* - 哪個代碼和哪個異常?你應該優先使用'setattr()''__dict__'。請參閱http://stackoverflow.com/questions/432786/how-can-i-assign-a-new-class-attribute-via-dict-in-python – cdarke
@khelwood包括我所知道的。我不熟悉SDK,但它是開源的。 – fneron