phpmyadminからエクスポートされたjsonファイルがあります。次のようになります(utf-8ファイル):
[{"user_email": "bh549@sina.cn","followee_id": 1411833182,"create_date": "cdatetime datetime p1 (S\'\\x07\\xdb\\x06\\x13\\x16\\x08(\\r\\xd5\\xcc\' tRp2 ."}, {"user_email": "zaici4@sina.cn","followee_id": 1296426000,"create_date": "cdatetime datetime p1 (S\'\\x07\\xdb\\x07\\x14\\x179\\x16\\x02 \\x08\' tRp2 ."}, {"user_email": "yanaa357@sina.com","followee_id": 1848085255,"create_date": "cdatetime datetime p1 (S\'\\x07\\xdb\\x08\\x13\\x17\\x10\\x0f\\x05\\x1c\\x02\' tRp2 ."}]
各dictはデータベース内の行であり、各行の3番目の値はcpickled文字列です。
次に、フォームを使用して、このファイルをPythonスクリプトにアップロードします(postメソッドを使用)。
次に、このファイルを次のようにPythonスクリプトで解析します。
import cgi, os
import cgitb; cgitb.enable()
import json
#import simplejson as json
print "Content-type: text/html\n\n"
try:
import msvcrt
msvcrt.setmode (0, os.O_BINARY) # stdin = 0
msvcrt.setmode (1, os.O_BINARY) # stdout = 1
except ImportError:
pass
form = cgi.FieldStorage()
file_content = form['mysql_table'].value
file_content = json.loads(file_content)
次に、ブラウザはjson.loadsを実行するときに値エラーを出力します。
<type 'exceptions.ValueError'>: Invalid control character at: line 1 column 83 (char 83)
char 83は、最初の行の3番目の値のスペースです。
この問題を解決するにはどうすればよいですか?
とにかくmhawkeに感謝します。しかし、あなたが言った最初の問題は存在しません。印刷結果からコピーしたので、\ nはありません。エクスポートしたjsonファイルには、実際には\ n
{"user_email": "bh549@sina.cn","followee_id": 1411833182,"create_date": "cdatetime
datetime
p1
(S\'\\x07\\xdb\\x06\\x13\\x16\\x08(\\r\\xd5\\xcc\'
tRp2
."}, {"user_email": "zaici4@sina.cn","followee_id": 1296426000,"create_date": "cdatetime
datetime
p1
(S\'\\x07\\xdb\\x07\\x14\\x179\\x16\\x02 \\x08\'
tRp2
."}
私は誤解していますか?2番目の問題、エクスポート時にphpmyadminがファイルをエスケープすることです。次に、あなたが言った問題を修正する方法は?
slouton:テーブルをエクスポートしてピクルスにしたデータを変換するPythonスクリプトを書いています。これで機能し、ピクルス化されたデータでjsonを処理する方法のようです。