我有個(gè)字符串如下:{\"module\":\"sink\", \"hostname\":\"datastream2\", \"tag\":\"urs_queryuser_mq\", \"category\":\"mq\", \"ruler\":\"MQ_55f85a369b22441e\", \"count\":425, \"totalDelay\":-1, \"totalProcessDelay\":2947890, \"time\":1430395550006}"
當(dāng)我使用Python shell 時(shí) :
ddb='{\"module\":\"sink\", \"hostname\":\"datastream2\", \"tag\":\"urs_yd_login\", \"category\":\"hdfs\", \"ruler\":\"HDFS_5aedbdf799494932\", \"count\":2, \"totalDelay\":-1, \"totalProcessDelay\":24115, \"time\":1430360048929}'
eval(ddb)
{'category': 'hdfs', 'count': 2, 'tag': 'urs_yd_login', 'totalDelay': -1, 'time': 1430360048929, 'totalProcessDelay': 24115, 'ruler': 'HDFS_5aedbdf799494932', 'hostname': 'datastream2', 'module': 'sink'}
此時(shí)能夠正常轉(zhuǎn)換成字典類型,但是在程序里邊這樣寫就會(huì)拋出異常:
腳本如下格式:
print format_data[1]
ddddd = r'%s' % format_data[1].strip('"')
print ddddd
log_detail = eval(ddddd)
輸出如下:
{\"module\":\"sink\", \"hostname\":\"datastream2\", \"tag\":\"urs_queryuser_mq\", \"category\":\"mq\", \"ruler\":\"MQ_55f85a369b22441e\", \"count\":425, \"totalDelay\":-1, \"totalProcessDelay\":2947890, \"time\":1430395550006}"
{\"module\":\"sink\", \"hostname\":\"datastream2\", \"tag\":\"urs_queryuser_mq\", \"category\":\"mq\", \"ruler\":\"MQ_55f85a369b22441e\", \"count\":425, \"totalDelay\":-1, \"totalProcessDelay\":2947890, \"time\":1430395550006}unexpected character after line continuation character (, line 1)
麻煩各位大俠,幫小弟指點(diǎn)指點(diǎn)。
5 回答

守著星空守著你
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
腳本里你用了 ddddd = r'%s' % format_data[1].strip('"') 來賦值的有 r
shell里沒這樣干,所以腳本出錯(cuò)了

LEATH
TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
- 關(guān)于為什么會(huì)有 斜杠: 這個(gè)數(shù)據(jù)是從 MQ讀出來的, 默認(rèn)會(huì)加上轉(zhuǎn)義符
- 關(guān)于賦值r , 去掉了也是同樣地問題

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
import json
json_str = {\"module\":\"sink\", \"hostname\":\"datastream2\", \"tag\":\"urs_queryuser_mq\", \"category\":\"mq\", \"ruler\":\"MQ_55f85a369b22441e\", \"count\":425, \"totalDelay\":-1, \"totalProcessDelay\":2947890, \"time\":1430395550006}
my_dic = json.loads(json_str)
添加回答
舉報(bào)
0/150
提交
取消