2017-07-28 6 views
1

現在、firebaseからJSONにデータベースをエクスポートしていますが、配列として出力されています。Python - すべてのデータを配列からコピーする方法

[{"ConnectionTime": 19.23262298107147, "objectId": "01331oxpVT", "FirmwareRevision": "201504270003 Img-B", "DeviceID": "EDF02C74-6518-489E-8751-25C58F8C830D", "PeripheralType": 4, "updatedAt": "2015-10-09T04:01:39.569Z", "Model": "Bean", "HardwareRevision": "E", "Serial": "Serial Number", "createdAt": "2015-10-09T04:01:39.569Z", "Manufacturer": "Punch Through Design"}, {"ConnectionTime": 0.3193170428276062, "objectId": "018Mv1g6I8", "DeviceID": "42635033-DF3A-4109-A633-C3AB829BE114", "PeripheralType": 2, "updatedAt": "2015-12-08T04:20:41.950Z", "createdAt": "2015-12-08T04:20:41.950Z"}] 

そして、私はこのエラーを取得する - Start of array encountered without start of object.'}]

にはどうすれば配列とデータのリストだけではないために、これを変更することができます。私はまた、データの各セットの間に改行が必要ですが、私は現在私が持っているコードは、配列からデータを取得すると仮定します。私のコードは以下の通りです。助けてくれてありがとう!次いで

firebase = firebase.FirebaseApplication('https://dataworks-356fa.firebaseio.com/') 
result = firebase.get('/connection_info_parse', None) 
# id_keys = map(str, result.keys()) #filter out ID names 


with open("firetobqrestore1.json", "w") as outfile: 
# for id in id_keys: 
    json.dump(result, outfile, indent=None) 
    outfile.write("\n") 
+0

JSONには配列が含まれています...正確にはどういう意味ですか? –

+0

はい、私はこれをBigQueryにエクスポートしていますが、それを受け入れるためにBigQueryの配列から引き出す必要があります –

+0

あなたは 'for id in id_keys:'を持っていますので、 'for x in result'のようなものを試しましたか?そして、それが何であるかを見るには 'print(x)'だけです。 –

答えて

1

ワークフローの中で、改行で区切られたJSONが必要なように思えますが、このエラーが発生していることを明示的に明確にしていません。その注意点が

は、私は、これはあなたが探しているものだと思う:

import json 

with open("firetobqrestore1.json", "w") as outfile: 
    for line in result: 
     json.dump(line, outfile, indent=None) 
     outfile.write("\n") 

これは、各行に個々のJSONオブジェクトを書き込みます。

これはまた、resultがJSON文字列ではなく実際のPythonオブジェクトであることを前提としています。文字列の場合は、最初に次のように解析する必要があります。

result = json.loads(result) 
1

リストの要素が解析されていない場合(それらが文字列で)、リストをループとjson.loadsを(使用して、JSONに各要素を変換します)。次に、json.dumps()を使用できます。

リストの要素がすでに解析されている場合は、リストをループしてjson.dumps()を使用します。

+0

どういう意味ですか? –

+0

なぜ 'json.loads()'が必要なのですか?すでにPythonのリストに入っているので、 'dumps()'要素 –

関連する問題