私はPythonプロジェクト用のセットアップスクリプトを作成しています。スクリプトは以下のようにjsonファイルからビルド設定を読み込みます。json.dump()によってjson.load()によって読み取られないファイル
with open('setup.conf','r') as configfile:
config = json.load(configfile)
これは完全に機能します。その後、スクリプトで、私は、そのオブジェクトの一部に自分自身を制限し、別のファイルにこの部分を書く:少なくともいずれかのエラーが発生しない
config = config[arg]
[...]
with open('kivy/app.conf','w') as appconfig:
json.dump(config,appconfig)
。私のメインのアプリの起動時に は、私はその後、私が作成したファイルを読みたい:
path = os.path.dirname(os.path.abspath(__file__))
with open(path + '/app.conf','r') as configfile:
config = json.load(configfile)
これを、しかし、(JSONはjson.dumpによって書かれていることを示す
simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
で失敗します)自体は最初の文字以降は無効です。それが得ることができるように、データ自体は、すべてのプレーンなASCII文字、ない奇妙な改行コード等:
{"deploy_server": false, "run_server": true, "server": "127.0.0.1", "run_app": true, "deploy_iOS": false, "user": "", "debug": true, "path": "", "deploy_android": false, "port": "8000"}
私は、これはから来ることができたわずかなアイデアを持っていないとしてunsuspiciousです。どんな助けでも大歓迎です!
UPDATEは
私は非常に同じコードは、上記のライブインタプリタセッションで動作することを発見しました。私は、これを取り巻くコードで奇妙なことが起こっているはずだと結論づけますが、私はここでも紛失しています。部屋にはっきりとした象がいるかもしれませんが、私は見ることができません。周囲のコードは次のようになります。
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from foodcalendar import CalendarWidget
from kivy.resources import resource_add_path
import os
import requests
import json
[...]
class MyApp(App):
def __init__(self):
super(MyApp,self).__init__()
path = os.path.dirname(os.path.abspath(__file__))
print path
with open(path + '/app.conf','r') as configfile:
for r in configfile:
print r
config = json.loads(r)
self.server = config["server"]
UPDATE 2
それは私が直面していますエラーが何とかrequests
モジュールに関連していることが判明:私はimport requests
をコメントアウトした場合、予想通り、すべての作品json
とrequests
モジュールのドキュメントは、任意の非互換性について沈黙しているので、私は...、これが起こる理由として無知だ
UPDATE 3
これはマシンに依存する問題のようです。私は別のマシン上で自分のコードを実行し、そこに完璧に走った。 Pythonはバージョン2.7.12、OSはUbuntu 16.04 x86_64、カーネルバージョンは4.4.0.38-汎用です...
あなたが書いた同じファイルを読んでいますか? – Blender
@Blender:はい、私が参照しているファイルは正しいものです。 –
モード "wb"で書き込もうとします。 – JulienD