2017-11-27 22 views
0

次のJSONをtest.xlsx.txtというテキストファイルに保存しました。次のようにJSONは次のとおりです。JSONをPythonで解析してExcelファイルに書き込む

{"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コード:json.loadsで

f = open(path_to_analysis_results,'r') 
message = f.read() 
datastore = json.loads(str(message)) 
print datastore 
f.close() 

、私はエラーを取得する」とValueError:期待プロパティ名:行1列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シートに書き込むことができるようにしたいと思います。

答えて

0

Mikeが述べたように、あなたのテキストファイルは有効な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() 
2

あなたのtxtファイルに有効なJSONが含まれていません。

まず、キーは数字ではなく文字列でなければなりません。

u"..."の表記も無効です。

JSONを最初に修正する必要があります(https://jsonlint.com/のようなリンターで実行してください)。

関連する問題