从字符串制作字典会切除除前两个之外的所有值

时间:2017-12-11 22:47:35

标签: python json dictionary

有一个字符串:

@Override
protected Fragment createFragment() {
    return GameFragment.newInstance();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.fragment_game, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.quit:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setCancelable(false);
            builder.setMessage("Are you sure you want to quit this game?");
            builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            });
            builder.setNegativeButton("No",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            AlertDialog alert = builder.create();
            alert.show();
            return true;
        case R.id.music_switch:
            MediaPlayer mp = MediaPlayer.create(this, R.raw.music);
            if (mp.isPlaying())
                mp.stop();
            else
                mp.start();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

我尝试用它来制作字典:

mystring = "{"1" : "a", "2" : "b", "3" : "c", "4" : "d"}"

它正在制作一本字典,但它只能从两个第一对键和值开始,所以它看起来像:

mydict = json.loads(mystring)

我也试过了:

{'1':'a', '2':'b'}

但是存在同样的问题。我不知道问题出在哪里。

2 个答案:

答案 0 :(得分:0)

在字符串周围使用单引号:

>>> import json
>>> mystring = '{"1" : "a", "2" : "b", "3" : "c", "4" : "d"}'
>>> mydict = json.loads(mystring)
>>> mydict
{'1': 'a', '2': 'b', '3': 'c', '4': 'd'}

答案 1 :(得分:0)

您的问题可能是您在大括号之前和之后使用双引号。你必须知道这是一个错误。