1
處理Google的半JSON API,將所有內容都返回爲字符串 - 即使是數字元素。如何在Python中編碼JSON時更改數據項
// [
{
"id": "22144"
,"t" : "AAPL"
,"e" : "NASDAQ"
,"l" : "100.75"
,"l_fix" : "100.75"
,"l_cur" : "100.75"
,"s": "0"
,"ltt":"4:00PM EDT"
,"lt" : "Sep 26, 4:00PM EDT"
,"lt_dts" : "2014-09-26T16:00:01Z"
,"c" : "+2.88"
,"c_fix" : "2.88"
,"cp" : "2.94"
,"cp_fix" : "2.94"
,"ccol" : "chg"
,"pcls_fix" : "97.87"
}
]
當編碼該響應與dict:
uquotes = json.loads(status.text[3:])
print uquotes
我得到傳入的JSON結構的所有元素爲字符串:
[{u'c': u'+2.88', u'ccol': u'chg', u'e': u'NASDAQ', u'ltt': u'4:00PM EDT', u'cp_fix': u'2.94', u'c_fix': u'2.88', u'l': u'100.75', u's': u'0', u'lt': u'Sep 26, 4:00PM EDT', u'pcls_fix': u'97.87', u't': u'AAPL', u'lt_dts': u'2014-09-26T16:00:01Z', u'l_fix': u'100.75', u'cp': u'2.94', u'id': u'22144', u'l_cur': u'100.75'}]
兩部分,以這樣的問題:
我如何enco de數字值,而不是類似的字符串:
try: d[t.tag] = int(text) except ValueError: try: d[t.tag] = float(text) except ValueError: d[t.tag] = text
嘗試整數,返回到浮點數,默認爲文本作爲最後的手段。
如何將所有密鑰變爲(ascii)?
應該更用我的問題清楚。我在哪裏迭代字典進行類型轉換。嘗試 - 除了部分去哪裏?看着loads()對象處理程序,但找不到一種方法來完成這項工作。謝謝! – fxstein 2014-09-27 15:01:10
非常好!非常感謝你! – fxstein 2014-09-27 15:17:49