2017-10-28 11 views
0

pycurl関数を使用して、Webサイトからデータを収集します。サンプルコードに続いて、わずかな変更の後、私は1つの大きなバッファー内のすべてのデータを取得します。 {"field_id": "data"、 "field_id2": "data2"、..}の形式で提供されます。これをcsvと同様のテキスト行に解析し、各データセットに対して1行の出力中括弧で囲まれています。これを達成する最良の方法は、「ピジョンソニック(pythonic)」とすることができますか?ああ、どこでUTF-8変換を最善に行うことができますか?ソースコーディングがISO8859であると思われますが、それは副次的な問題です。python:バッファからデータを解析する

関連するコード:

buffer = StringIO() 
c = pycurl.Curl() 
c.setopt(c.URL, MY_URL) 
c.setopt(c.WRITEDATA, buffer) 
c.perform() 
c.close() 

サンプルデータ:

`{"status":"ok","nature":"Liste des champs principaux de tous les terrains publi\u00e9s","count":"1211","liste": 
[{"id":"3667","date_modif":"2013-04-03 11:27:00","code_terrain":"LF5155","toponyme":"Champagne Vol Libre","type_terrain":"Base ULM Autorisation OBLIGATOIRE ","latitude":"N 48 56 10","longitude":"E 004 03 42","altitude":"335` ft","pays":"France","region":"Grand-Est","departement":"Marne","ville":"Villeneuve"}, 
{"id":"5118","date_modif":"2015-08-18 13:17:23","code_terrain":"LF4861","toponyme":"La Canourgue Conques","type_terrain":"A\u00e9rodrome ferm\u00e9.","latitude":"N 44 24 55","longitude":"E 003 17 05","altitude":"2920 ft","pays":"France","region":"Occitanie","departement":"Loz\u00e8re","ville":"La Canourgue"} 
+0

感謝のドキュメントを見て有用であろう、JSONファイルを解析しようとしています、PRMoureuしかし、それは動作しません。 JSONは私にとって新しい地形だと既に言われているように、おそらく私は何か初心者が欠けているでしょう。エラーは "ValueError:No JSONオブジェクトをデコードできませんでした" –

+0

サンプル出力はどのように取得しましたか? 'json.loads(result_string)'と同じ方法で使用できます。 – PRMoureu

答えて

0
+0

ああ!私はまだJSON形式のデータに遭遇したことはありませんでした。そのため、形式を認識できませんでした。 –

+0

私の答えを「受け入れる」ことを忘れないでください。ここに来る他の人々も解決策を見つけてそれを「信頼」します。 :) – Adriano

0
import json 
result = json.loads('{"something": 1}', encoding="ISO8859") # default encoding is utf-8 
print(result["something"]) 

>>> 1 
+0

コードのみの回答は問題を解決するかもしれませんが、あなたの答えがその質問を解決する理由を説明できるならば、常に良いです。これは、他の人が何が変わったのか、なぜこのようにしなければならないのかを理解するために答えを見るときに役立ちます。 –

関連する問題