我将以下 JSON 保存在名为 test.xlsx.txt 的文本文件中。JSON 如下:
{"RECONCILIATION": {0: "Successful"}, "ACCOUNT": {0: u"21599000"}, "DESCRIPTION": {0: u"USD to be accrued. "}, "PRODUCT": {0: "7500.0"}, "VALUE": {0: "7500.0"}, "AMOUNT": {0: "7500.0"}, "FORMULA": {0: "3 * 2500 "}}
以下是我的python代码:
f = open(path_to_analysis_results,'r')
message = f.read()
datastore = json.loads(str(message))
print datastore
f.close()
使用 json.loads,我收到错误“ ValueError: Expecting property name: line 1 column 21 (char 20) ”。我尝试过 json.load、json.dump 和 json.dumps,它们都给出了各种错误。我想要做的就是能够提取键和相应的值并写入 Excel 文件。我已经想出了如何将数据写入 Excel 文件,但我坚持解析这个 json。
RECONCILIATION : Successful
ACCOUNT : 21599000
DESCRIPTION : USD to be accrued.
PRODUCT : 7500.0
VALUE : 7500.0
AMOUNT : 7500.0
FORMULA : 3 * 2500
我希望数据采用上述格式,以便能够将它们写入 Excel 工作表。
正如迈克所说,您的文本文件不是有效的 JSON。它应该是这样的:
{"RECONCILIATION": {"0": "Successful"}, "ACCOUNT": {"0": "21599000"}, "DESCRIPTION": {"0": "USD to be accrued. "}, "PRODUCT": {"0": "7500.0"}, "VALUE": {"0": "7500.0"}, "AMOUNT": {"0": "7500.0"}, "FORMULA": {"0": "3 * 2500 "}}
注意:键在双引号内,因为 JSON 需要双引号。而且,您的代码应该是(没有str()):
import json
f = open(path_to_analysis_results,'r')
message = f.read()
print(message) # print message before, just to check it.
datastore = json.loads(message) # note: str() is not required. Message is already a string
print (datastore)
f.close()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句