小编Tra*_*ang的帖子

将``r''前缀添加到python变量

我有一个字符串变量是

temp = '1\2\3\4'
Run Code Online (Sandbox Code Playgroud)

我想在字符串变量中添加前缀“ r”并获取

r'1\2\3\4'
Run Code Online (Sandbox Code Playgroud)

这样我就可以基于'\'分割字符串。我尝试了以下方法:

r'temp'
'r' + temp
r + temp
Run Code Online (Sandbox Code Playgroud)

但以上方法均无效。有一个简单的方法吗?我正在使用python3。我也尝试使用

temp.encode('string-escape')
Run Code Online (Sandbox Code Playgroud)

但它返回以下错误

LookupError: unknown encoding: string-escape
Run Code Online (Sandbox Code Playgroud)

python-3.x string-prefix

5
推荐指数
1
解决办法
4815
查看次数

如何在python 3.5.2中读取avro文件

我试图使用python读取avro文件.

我成功安装了Apache Avro(我想我之所以这样做是因为我能够在python shell中"导入avro")遵循这里的指令

https://avro.apache.org/docs/1.8.1/gettingstartedpython.html
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试按照上述指令中的代码读取avro文件时.导入avro相关内容时,我一直收到错误.

>>> import avro.schema
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
import avro.schema
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 896, in _find_spec
File "<frozen importlib._bootstrap_external>", line 1139, in find_spec
File "<frozen importlib._bootstrap_external>", line 1115, in _get_spec
File "<frozen importlib._bootstrap_external>", line 1096, in _legacy_get_spec
File "<frozen importlib._bootstrap>", line 444, in spec_from_loader
File "<frozen importlib._bootstrap_external>", line 533, in spec_from_file_location
File "I:\Program …
Run Code Online (Sandbox Code Playgroud)

python-3.x avro

4
推荐指数
1
解决办法
1万
查看次数

在python中读取Avro文件时出错

我在Python中成功安装了Apache Avro。然后,我尝试按照以下说明将Avro文件读入Python。

https://avro.apache.org/docs/1.8.1/gettingstartedpython.html
Run Code Online (Sandbox Code Playgroud)

我的目录中有一堆Avros,该目录已经在Python中设置为正确的路径。这是我的代码:

import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter

reader = DataFileReader(open("part-00000-of-01733.avro", "r"), DatumReader())
for user in reader:
   print (user)
reader.close()
Run Code Online (Sandbox Code Playgroud)

但是,它返回此错误:

https://avro.apache.org/docs/1.8.1/gettingstartedpython.html
Run Code Online (Sandbox Code Playgroud)

我确实知道,在该指令的示例中,首先创建了一个架构。但是什么是avsc文件?在我的情况下,应如何创建它和相应的架构?理想情况下,我想将Avro文件读入Python,并将其保存为Python磁盘或数据框/列表类型中的csv格式,以进行进一步分析。我在Windows 7上使用Python 3。

编辑 我尝试了Stephane的代码,它返回了一个新的错误

import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter

reader = DataFileReader(open("part-00000-of-01733.avro", "r"), DatumReader())
for user in reader:
   print (user)
reader.close()
Run Code Online (Sandbox Code Playgroud)

EDITED2:Stephane的代码在大多数情况下都可以使用,但有时会引发这样的AssertionError

Traceback (most recent call last):
File "I:\DJ data\read avro.py", line 42, in <module>
for user in reader: …
Run Code Online (Sandbox Code Playgroud)

python-3.x avro

3
推荐指数
1
解决办法
4214
查看次数

在python中按顺序将多个字典附加到一个字典中

我有好几本这样的字典

dict1 = {0: 33.422, 1: 39.2308, 2: 30.132}
dict2 = {0: 42.2422, 1: 43.342, 2: 42.424}
dict3 = {0: 13.422, 1: 9.2308, 2: 20.132}
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用代码将它们组合成一本字典

dicts = dict1, dict2, dict3
Run Code Online (Sandbox Code Playgroud)

它返回这样的结果

({0: 33.422, 1: 39.2308, 2: 30.132}, {0: 42.2422, 1: 43.342, 2: 42.424}, {0: 13.422, 1: 9.2308, 2: 20.132})
Run Code Online (Sandbox Code Playgroud)

但是,如果字典按顺序出现呢?我怎样才能得到相同的结果?我尝试了以下代码

dicts = {}
dicts = dicts, dict1
dicts = dicts, dict2
dicts = dicts, dict3
Run Code Online (Sandbox Code Playgroud)

但它返回这样的结果

((({}, {0: 33.422, 1: 39.2308, 2: 30.132}), {0: 42.2422, 1: 43.342, 2: 42.424}), …
Run Code Online (Sandbox Code Playgroud)

dictionary python-3.x

3
推荐指数
2
解决办法
3万
查看次数

标签 统计

python-3.x ×4

avro ×2

dictionary ×1

string-prefix ×1